集群搭建
Redis集群搭建步骤,按照3台主机,3台从机(三主三从)共六台进行搭建,端口划分7000-7005
准备集群文件夹
1.创建集群文件夹
Mkdir cluster
2.在cluster文件夹中分别创建7000-7005文件夹
mkdir 7000 7001 7002 7003 7004 7005
3.配置文件
将redis根目录中的redis.conf文件复制到cluster/7000/ 并以原名保存
cp redis.conf cluster/7000/
编辑配置文件
- 注释本地绑定IP地址
- 关闭保护模式
- 修改端口号
- 启动后台启动
- 修改pid文件
- 修改持久化文件路径
- 设定内存优化策略(可以优先设置为lru)
- 关闭AOF模式
- 开启集群配置
- 开启集群配置文件
- 修改集群超时时间
批量分配、修改配置文件
7000~70056六个文件夹,六次配置文件,修改对应即可
编写脚本编辑启动/关闭命令
- 创建启动脚本—
vim start.sh
- 创建关闭脚本—
vim shutdown.sh
启动redis节点并查看状态
sh start.sh
ps -ef | grep redis
创建Redis集群
#5.0版本执行 使用C语言内部管理集群
redis-cli --cluster create --cluster-replicas
1 192.168.35.130:7000 192.168.35.130:7001 192.168.35.130:7002 192.168.35.130:7003 192.168.35.130:7004 192.168.35.130:7005
Redis集群原理
- Redis的所有节点都会保存当前redis集群中的全部主从状态信息,并且每个节点都能够相互通信,当一个节点发生宕机现象,则集群中的其他节点通过PING-PONG检测机制检查Redis节点是否宕机,当有半数以上的节点认为宕机,则认为主节点宕机,同时由Redis剩余的主节点进入选举机制,投票选举链接宕机的主节点的从机.实现故障迁移。
- 集群中如果主机宕机,那么从机可以继续提供服务,当主机中没有从机时,则向其它主机借用多余的从机继续提供服务,如果主机宕机时没有从机可用,则集群崩溃。
例如有9个redis节点,节点需要宕机5-7次时集群才崩溃。
Redis hash槽存储数据原理
RedisCluster采用此分区,所有的键根据哈希函数(CRC16[key]%16384)映射到0-16383槽内,共16384个槽位,每个节点维护部分槽及槽所映射的键值数据.根据主节点的个数,均衡划分区间.
算法:哈希函数: Hash()=CRC16[key]%16384
当向redis集群中插入数据时,首先将key进行计算.之后将计算结果匹配到具体的某一个槽的区间内,之后再将数据set到管理该槽的节点中。