本篇基于redis密码认证的集群cluster搭建。以三主三从进行测试,redis选用5.0以上的版本。1、环境描述
服务器:centos7.9
redis:5.0.3
服务端口:6379,6378,6377,6376,6375,6374
2、下载安装包
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
3、安装redis
yum install gcc -y
tar xvf redis-5.0.3.tar.gz
cd redis-5.0.3
make && make install
4、修改配置文件
拷贝6份同样的配置文件
mv redis.conf redis6379.conf
echo 'redis6378.conf redis6377.conf redis6376.conf redis6375.conf redis6374.conf' | xargs -n 1 cp redis6379.conf
redis6379.conf修改:
69 #bind 127.0.0.1 #注释掉此行
88 protected-mode no #关闭保护模式
136 daemonize yes #后台启动
158 pidfile /var/run/redis_6379.pid #启动进程文件
171 logfile "6379.log" #方便查看日志
253 dbfilename dump6379.rdb #数据文件
507 requirepass foobared #密码认证
293 masterauth foobared #主从切换时需要认证的主库密码
以下是集群配置:
699 appendonly yes #开启AOF模式
838 cluster-enabled yes #开启 Redis Cluster
846 cluster-config-file nodes-6379.conf #集群配置文件,每个容器配置改唯一就行
852 cluster-node-timeout 5000 #集群中的节点能够失联的最大时间,超过这个时间,该节点就会被认为故障
redis6378.conf修改:
69 #bind 127.0.0.1 #注释掉此行
88 protected-mode no #关闭保护模式
136 daemonize yes #后台启动
158 pidfile /var/run/redis_6378.pid #启动进程文件
171 logfile "6378.log" #方便查看日志
253 dbfilename dump6378.rdb #数据文件
507 requirepass foobared #密码认证
293 masterauth foobared #主从切换时需要认证的主库密码
以下是集群配置:
699 appendonly yes #开启AOF模式
838 cluster-enabled yes #开启 Redis Cluster
846 cluster-config-file nodes-6378.conf #集群配置文件,每个容器配置改唯一就行
852 cluster-node-timeout 5000 #集群中的节点能够失联的最大时间,超过这个时间,该节点就会被认为故障
redis6377.conf修改:
69 #bind 127.0.0.1 #注释掉此行
88 protected-mode no #关闭保护模式
136 daemonize yes #后台启动
158 pidfile /var/run/redis_6377.pid #启动进程文件
171 logfile "6377.log" #方便查看日志
253 dbfilename dump6377.rdb #数据文件
507 requirepass foobared #密码认证
293 masterauth foobared #主从切换时需要认证的主库密码
以下是集群配置:
699 appendonly yes #开启AOF模式
838 cluster-enabled yes #开启 Redis Cluster
846 cluster-config-file nodes-6377.conf #集群配置文件,每个容器配置改唯一就行
852 cluster-node-timeout 5000 #集群中的节点能够失联的最大时间,超过这个时间,该节点就会被认为故障
redis6376.conf修改:
69 #bind 127.0.0.1 #注释掉此行
88 protected-mode no #关闭保护模式
136 daemonize yes #后台启动
158 pidfile /var/run/redis_6376.pid #启动进程文件
171 logfile "6376.log" #方便查看日志
253 dbfilename dump6376.rdb #数据文件
507 requirepass foobared #密码认证
293 masterauth foobared #主从切换时需要认证的主库密码
以下是集群配置:
699 appendonly yes #开启AOF模式
838 cluster-enabled yes #开启 Redis Cluster
846 cluster-config-file nodes-6376.conf #集群配置文件,每个容器配置改唯一就行
852 cluster-node-timeout 5000 #集群中的节点能够失联的最大时间,超过这个时间,该节点就会被认为故障
redis6375.conf修改:
69 #bind 127.0.0.1 #注释掉此行
88 protected-mode no #关闭保护模式
136 daemonize yes #后台启动
158 pidfile /var/run/redis_6375.pid #启动进程文件
171 logfile "6375.log" #方便查看日志
253 dbfilename dump6375.rdb #数据文件
507 requirepass foobared #密码认证
293 masterauth foobared #主从切换时需要认证的主库密码
以下是集群配置:
699 appendonly yes #开启AOF模式
838 cluster-enabled yes #开启 Redis Cluster
846 cluster-config-file nodes-6375.conf #集群配置文件,每个容器配置改唯一就行
852 cluster-node-timeout 5000 #集群中的节点能够失联的最大时间,超过这个时间,该节点就会被认为故障
redis6374.conf修改:
69 #bind 127.0.0.1 #注释掉此行
88 protected-mode no #关闭保护模式
136 daemonize yes #后台启动
158 pidfile /var/run/redis_6374.pid #启动进程文件
171 logfile "6374.log" #方便查看日志
253 dbfilename dump6374.rdb #数据文件
507 requirepass foobared #密码认证
293 masterauth foobared #主从切换时需要认证的主库密码
以下是集群配置:
699 appendonly yes #开启AOF模式
838 cluster-enabled yes #开启 Redis Cluster
846 cluster-config-file nodes-6374.conf #集群配置文件,每个容器配置改唯一就行
852 cluster-node-timeout 5000 #集群中的节点能够失联的最大时间,超过这个时间,该节点就会被认为故障
说明:每个配置文件pidfile,logfile,dbfilename,cluster-config-file不同,其余配置均相同。
5、启动服务
在redis解压目录下依次启动
redis-server redis6379.conf
redis-server redis6378.conf
redis-server redis6377.conf
redis-server redis6376.conf
redis-server redis6375.conf
redis-server redis6374.conf
[root@iZuf612i9bshiuw3zzlfe9Z redis-5.0.3]# ps -aux |grep redis
root 16956 0.0 0.1 153980 2840 ? Ssl 09:36 0:00 redis-server *:6379 [cluster]
root 16965 0.0 0.1 153980 2844 ? Ssl 09:36 0:00 redis-server *:6378 [cluster]
root 16972 0.0 0.1 153980 2848 ? Ssl 09:36 0:00 redis-server *:6377 [cluster]
root 16980 0.0 0.1 153980 2848 ? Ssl 09:36 0:00 redis-server *:6376 [cluster]
root 16994 0.0 0.1 153980 2848 ? Ssl 09:36 0:00 redis-server *:6375 [cluster]
root 17003 0.0 0.1 153980 2852 ? Ssl 09:36 0:00 redis-server *:6374 [cluster]
root 17015 0.0 0.0 112808 964 pts/0 S+ 09:36 0:00 grep --color=auto redis
6、创建集群
redis-cli --cluster create 127.0.0.1:6379 127.0.0.1:6378 127.0.0.1:6377 127.0.0.1:6376 127.0.0.1:6375 127.0.0.1:6374 --cluster-replicas 1 -a foobared
7、数据验证
#登录
redis-cli -p 端口-a foobared -c
说明:-c的目的是为解决“(error) MOVED 5798”报错
[root@iZuf612i9bshiuw3zzlfe9Z redis-5.0.3]# redis-cli -p 6379 -a foobared
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> set name mike
(error) MOVED 5798 127.0.0.1:6378
127.0.0.1:6379> exit
[root@iZuf612i9bshiuw3zzlfe9Z redis-5.0.3]# redis-cli -p 6379 -a foobared -c
Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe.
127.0.0.1:6379> set name mike
-> Redirected to slot [5798] located at 127.0.0.1:6378
OK
《数据验证》验证如下:
《主从切换验证》验证如下:
6374为6378的从,现在停掉6378进行测试
切换之前:
切换之后:
到此,redis集群基于5.0以上版本密码认证搭建。