【redis笔记】redis_集群(6)
Page content
这一篇整理了redis集群相关的内容。
Redis集群实现了对Redis的水平扩容,即启动N个redis节点,
将整个数据库分布存储在这N个节点中,每个节点存储总数据的1/N。
1、安装ruby环境
yum install ruby
yum install rubygems
#安装redis-3.2.0.gem
gem install --local redis-3.2.0.gem
配置项
- redis.conf文件include
- 开启daemonize yes
- Pid文件名字pidfile
- 指定端口port
- Log文件名字
- Dump.rdb名字dbfilename
- Appendonly 关掉或者换名字
include /opt/module/redis/conf/redis.conf
pidfile var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb
cluster-enabled yes
cluster-config-file nodes-6379.conf
cluster-node-timeout 15000
创建集群环境
cd /opt/redis-3.2.5/src
./redis-trib.rb create --replicas 1 192.168.31.211:6379 192.168.31.211:6380 192.168.31.211:6381 192.168.31.211:6389 192.168.31.211:6390 192.168.31.211:6391
此处不要用127.0.0.1, 请用真实IP地址
#查看集群信息
cluster nodes
2.redis cluster 节点
- 一个集群至少要有三个主节点。
- 选项 –replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
- 分配原则尽量保证每个主数据库运行在不同的IP地址,每个从库和主库不在一个IP地址上。
主节点宕机,从机自动上升为主节点,这次再次启动原来主节点,它会成为从机。
#redis.conf中的参数决定当一个节点全部(主从)宕机时,
#是能继续用(部分节点有效)还是不不能用(所有集群都不能用)。
cluster-require-full-coverage
3.slots
一个 Redis 集群包含 16384 个插槽(hash slot)
比如分3个主节点,其中:
节点 A 负责处理 0 号至 5500 号插槽。
节点 B 负责处理 5501 号至 11000 号插槽。
节点 C 负责处理 11001 号至 16383 号插槽。
redis-cli客户端提供了 –c 参数实现自动重定向。
不在一个slot下的键值,是不能使用mget,mset等多键操作。
#集群方式连接
redis-cli -c -p ...
#计算键 key 应该被放置在哪个槽上。
CLUSTER KEYSLOT <key>
#返回槽 slot 目前包含的键值对数量。
CLUSTER COUNTKEYSINSLOT <slot>
#返回 count 个 slot 槽中的键。
CLUSTER GETKEYSINSLOT <slot> <count>
欢迎大家的意见和交流
email: li_mingxie@163.com