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台主机,一个主机一个槽位