Redis集群搭建
1. 准备文件
创建一个cluster文件夹,并且为每一个集群node准备一个文件夹
mkdir 7000 7001 7002 7003 7004 7005
2. 配置文件
2.1 把原始文件复制到每个文件夹中
2.2 配置文件修改
关闭绑定IP
#bind 127.0.0.1
关闭保护模式
protected-mode no
修改端口号
port 7000
后台启动
daemonize yes
修改pid文件路径
pidfile /usr/local/src/redis/cluster/7000/redis.pid
修改持久化文件路径
dir /usr/local/src/redis/cluster/7000
设置内存优化策略
maxmemory-policy volatile-lru
关闭AOF模式
appendonly no
开启集群配置模式
cluster-enabled yes
开启集群配置文件
cluster-config-file nodes.conf
修改集群超时时间
cluster-node-timeout 15000
2.3 配置文件部署
复制修改后的配置文件到每个文件夹
然后在每个配置文件中把端口号全部都替换掉
:%s/7000/7001/g
2.4 创建启动和关闭脚本
vim start.sh
#!/bin/sh
redis-server 7000/redis.conf &
redis-server 7001/redis.conf &
redis-server 7002/redis.conf &
redis-server 7003/redis.conf &
redis-server 7004/redis.conf &
redis-server 7005/redis.conf &
3.创建Redis集群
5.0版本前需要用ruby环境,5.0后可以直接执行命令
redis-cli --cluster create --cluster-replicas 1 192.168.126.129:7000 192.168.126.129:7001 192.168.126.129:7002 192.168.126.129:7003 192.168.126.129:7004 192.168.126.129:7005
命令说明:
redis-cli:进入客户端
–cluster create:创建集群
–cluster-replicas 1 :每个主node有1个节点
执行后会提示是否同意集群创建,输入yes回车即可
至此完成创建Redis集群
备注:如果在创建集群的时候出现问题导致失败,需要删除文件夹下的所有除了redis.conf外所有的其他生成的文件,然后重新配置!
4.Redis的工作原理
创建集群后,会分配16384个槽位,每次存储数据的时候会通过Hash算法,把得出的值和16385取模,然后通过取出的模存入槽位中
每个主机都会分配到一定长度的槽位,只有在对应槽位中的数据才能顺利存进对应主机中
所以一般在Linux的client中采用set方式存值的时候会提示,你应该去哪一个节点存
所以,一个集群,最多有16384台主机,一个主机一个槽位