Linux搭建redis集群
前言
如果是redis单机版安装,可以参考上一篇:Linux安装redis。
本篇的安装环境和上篇一样,但是本篇是搭建redis集群。要保证集群的高可用,需要每个节点都有从节点,所以Redis集群至少需要6台服务器。因为只有一台服务器,所有这里搭建的伪分布式集群,即一台服务器虚拟运行6个redis实例,修改端口号为8001~8006。
搭建
1、在/usr/local目录下,创建一个目录 rediscluster
mkdir rediscluster
2、进入reidscluster目录,创建6个文件夹(批量)
mkdir ./node800{1,2,3,4,5,6}
创建的文件夹如下所示:
3、将redis配置文件拷贝到 ./rediscluster/node8001/ 下
cp redis/redis.conf ./rediscluster/node8001/
4、修改配置文件内容
port 8001 --设置端口 #bind 127.0.0.1 --去掉绑定ip信息 protected-mode no --关闭保护模式 dir /usr/local/rediscluster/node8001 --指定数据文件存放位置,必须要指定不同的目录,不然会丢失数据,默认 dir ./。 cluster-enabled yes --开启集群模式 cluster-config-file nodes-8001.conf --集群节点配置文件,这里的800x最好和port对应上,redis集群自动创建、自动更新 cluster-node-timeout 5000 --集群超时时间,节点超过这个时间没反应就断定是宕机 appendonly yes --开启AOF持久化 如果要设置密码,需要增加如下配置: requirepass 123456 --设置redis访问密码 masterauth 123456 --设置集群节点间访问密码,跟上面一致
5、保存后,将此配置文件复制到其它节点(node8002~node8006)
6、在node8002~node8006的配置文件中,命令模式下执行替换命令(将8001改为800x):
7、切到redis目录,启动node8001节点服务
./src/redis-server /usr/local/rediscluster/node8001/redis.conf
查看redis进程,发现进程中有表示为 [cluster]的redis进程。如下所示:
8、参照上一步,分别启动其它5个节点。启动后查看进程如下:
9、创建集群(其中:-a 123456是配置文件中的密码,cluster-replicas 1,表示1个从节点)
./src/redis-cli -a 123456 --cluster create 192.168.20.15:8001 192.168.20.15:8002 192.168.20.15:8003 192.168.20.15:8004
192.168.20.15:8005 192.168.20.15:8006 --cluster-replicas 1
执行后,slots和主从节点信息如下(8001(主)和8004(从)、8002(主)和8005(从)、8003(主)和8006(从)):
10、询问是否确认上面的配置,输入 yes,会打印如下信息:
自此集群搭建就完成了
普通模式
1、普通模式进入redis客户端(-a是密码,-p是端口,如果是远程连接,得加上-h)
./src/redis-cli -a 123456 -p 8001
2、执行set命令,发现报错(意思其实就是 a 对应的slot为15495,只能在8003上执行)
3、切到8003上再执行set命令,执行成功
集群模式
1、普通模式执行命令可能slot不正确导致命令不能执行,所以可以切到集群模式执行(加一个 -c 选项)。
./src/redis-cli -c -a 123456 -p 8001
2、在8001上执行set命令,发现可以执行成功
其它命令
1、查看key为a的slot值
cluster keyslot a
2、查看slot信息
cluster slots
3、查看集群信息:
cluster info
4、集群帮助命令
redis-cli --cluster help