1.Redis集群cluster模式部署
1.1.redis集群管理说明
1.redis集群使用哈希槽(hash slot)来分配数据,总共有16384个哈希槽。当客户端向Redis Cluster写入数据时,它会根据键的哈希值计算出应该存放在哪个哈希槽中,然后将数据写入到负责该哈希槽的节点上。
2.在Redis Cluster中,每个哈希槽都由一个主节点(master)负责,而主节点可以有多个从节点(slave)作为备份。
3.当主节点出现故障时,Redis Cluster会自动触发故障转移过程,将一个从节点升级为主节点,以继续提供服务。故障转移的过程大致如下
检测故障:Redis Cluster中的其他节点会定期检测主节点的状态。
选举新的主节点:当主节点故障时,它的从节点会尝试选举,以决定哪个从节点升级主节点。
重新分片:当新的主节点选举出来后,Redis Cluster会触发重新分片过程,将原本由故障主节点负责的哈希槽重新分配给新的主节点。
4.当有新节点加入集群时,集群会自动将一部分哈希槽从旧节点迁移到新节点上去;当某个节点离开集群时,集群会将该节点负责的哈希槽重新分配给其他节点
5.redis内存淘汰策略配置
maxmemory-policy allkeys-lru volatile-lru
从设置了过期时间的key中使用LRU算法进行淘汰,优先淘汰那些最近最少使用且已经设置了过期时间的key
maxmemory-policy allkeys-lru allkeys-lru(在用)
从所有key中使用LRU算法进行淘汰,淘汰最长时间未被访问的key
淘汰策略针对整个集群的全局设置,不支持针对特定的 namespace设置不同的淘汰策略
1.2.环境介绍
Redis部署在redis01.redis02.redis03服务器上,每台服务器部署三个节点,采取三主六从的集群模式。
服务器名称 | 主机ip地址 | 主节点 | 从节点 | 从节点 |
---|---|---|---|---|
redis01 | 182.167.4.2 | 7000 | 7001 | 7002 |
redis02 | 182.167.4.3 | 7000 | 7001 | 7002 |
redis03 | 182.167.4.4 | 7000 | 7001 | 7002 |
本书使用生产环境,使用客户端需要配置/etc/hosts
部署架构图如下
1.3.上传文件
root用户新建redissoft目录
mkdir -p /data/redissoft
只要将以下文件上传到/data/redissoft目录即可
由于只能用data用户传输文件,先用data
将redis01.zip,redis02.zip,redis03.zip(安装包和一些脚本)分别上传到 redis01,redis02,redis03服务器的data目录,在转移到/data/redissoft目录,并分别解压文件
cd /data
mv redis01.zip ./redissoft
cd /data/redissoft
unzip redis01.zip
chmod -R 755 ./redis-sh
cd /data
mv redis02.zip ./redissoft
cd /data/redissoft
unzip redis02.zip
chmod -R 755 ./redis-sh
cd /data
mv redis03.zip ./redissoft
cd /data/redissoft
unzip redis03.zip
chmod -R 755 ./redis-sh
redis-install.sh内容为
REDIS_SRC_DIR="/data/redissoft"
REDIS_INSTALL_DIR="/data"
REDIS_INSTALL_DIR_data="/datalog"
REDIS_PACKAGE="redis-7.2.5.tar.gz"
REDIS_PORT_START=7000