Redis基本命令及集群搭建
[*]使用redis有哪些好处?
(1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1)
(2) 支持丰富数据类型,支持string,list,set,sorted set,hash
(3) 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行
(4) 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会自动删除
[*] redis相比memcached有哪些优势?
(1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
(2) redis的速度比memcached快很多
(3) redis可以持久化其数据
[*]redis常见性能问题和解决方案:
(1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件
(2) 如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次
(3) 为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内
(4) 尽量避免在压力很大的主库上增加从库
(5) 主从复制不要用图状结构,用单向链表结构更为稳定,即:Master0 keys | 5462 slots | 1 slaves.
172.31.24.141:6300 (9681bbeb...) -> 0 keys | 5461 slots | 1 slaves.
Redis Cluster中的节点分为两种:Master节点和Slave节点,一个Master节点可以拥有若干个Slave节点,
Master节点上的数据通过异步方式与Slave节点实现数据同步,当Master节点因为某种原因退出集群后,
Redis Cluster会自动从该Master节点的Slave节点中选择出一个作为新的Master节点。
因此,redis-trib.rb工具的create子命令提供了--args参数来指定集群中的Master节点拥有几个Slave节点,
譬如使用6个redis实例构建集群且--args参数值为1,那么整个集群就包含三个Master节点和三个Slave节点,每个Master节点都有一个Slave节点
客户端连接操作
redis-cli -h redis02-jp -p 6300
CLUSTER INFO #查看cluster信息
CLUSTER NODES #查看各节点的哈希槽和储存节点
redis.conf 的配置信息
[*]daemonize 如果需要在后台运行,把该项改为yes redis-server ../redis.conf 指定配置文件重启
[*]pidfile 配置多个pid的地址 默认在/var/run/redis.pid
[*]bind 绑定ip,设置后只接受来自该ip的请求
[*]port 监听端口,默认是6379
[*]loglevel 分为4个等级:debug verbose notice warning
[*]logfile 用于配置log文件地址
[*]databases 设置数据库个数,默认使用的数据库为0
[*]save 设置redis进行数据库镜像的频率。
[*]rdbcompression 在进行镜像备份时,是否进行压缩
[*]dbfilename 镜像备份文件的文件名
[*]Dir 数据库镜像备份的文件放置路径
[*]Slaveof 设置数据库为其他数据库的从数据库
[*]Masterauth 主数据库连接需要的密码验证
[*]Requriepass 设置 登陆时需要使用密码
[*]Maxclients 限制同时使用的客户数量
[*]Maxmemory 设置redis能够使用的最大内存
[*]Appendonly 开启append only模式
[*]Appendfsync 设置对appendonly.aof文件同步的频率(对数据进行备份的第二种方式)
[*]vm-enabled 是否开启虚拟内存支持 (vm开头的参数都是配置虚拟内存的)
[*]vm-swap-file 设置虚拟内存的交换文件路径
[*]vm-max-memory 设置redis使用的最大物理内存大小
[*]vm-page-size 设置虚拟内存的页大小
[*]vm-pages 设置交换文件的总的page数量
[*]vm-max-threads 设置VM IO同时使用的线程数量
[*]Glueoutputbuf 把小的输出缓存存放在一起
[*]hash-max-zipmap-entries 设置hash的临界值
[*]Activerehashing 重新hash
页:
[1]