Redis三主三从安装和配置


一、安装Redis

1. 安装C/C++环境

Redis编译时需要使用C/C++环境:
yum install -y gcc gcc-c++ make

2. redis下载

wget https://download.redis.io/releases/redis-5.0.13.tar.gz

3. 解压、编译

tar -zxvf redis-5.0.13.tar.gz
cd redis-5.0.13
make
注意
如果make报【 jemalloc/jemalloc.h: No such file or directory。】错误
执行make distclean && make来清理上次编译残留文件,重新编译
导致出现这个错误的原因
  错误的本质是我们在开始执行make 时遇到了错误(大部分是由于gcc未安装),然后我们安装好了gcc 后,
我们再执行make ,这时就出现了jemalloc/jemalloc.h: No such file or directory。这是因为上次的编译失败,有残留的文件,我们需要清理下,然后重新编译就可以了。

4. 创建Redis相关工作目录(目录可自定义)

mkdir /data/redis/redis-cluster/{data/{redis_8001,redis_8002},conf,log} -p

5. 复制redis配置文件

cp /data/redis/redis-5.0.13/redis.conf /data/redis/redis-cluster/conf/redis_8001.conf
cp /data/redis/redis-5.0.13/redis.conf /data/redis/redis-cluster/conf/redis_8002.conf

二、修改Redis配置文件

port 8001             
	#修改redis监听端口(可以自定义) 8001与端口号同步
	bind 0.0.0.0            
	#表示redis允许所有地址连接。默认127.0.0.1,仅允许本地连接。
	daemonize yes             
	#允许redis后台运行
	pidfile /var/run/redis_8001.pid     
	#pid存放目录 8001与端口号同步
	logfile "/data/redis/redis-cluster/log/redis_8001.log"   
	#设置日志存放路径 8001与端口号同步
	dir /data/redis/redis-cluster/data/redis_8001  
	#工作目录 8001与端口号同步
	cluster-enabled yes     
	#是否开启集群
	cluster-config-file /data/redis/redis-cluster/conf/nodes_8001.conf
	#集群配置文件的名称,每个节点都有一个集群相关的配置文件,持久化保存集群的信息  8001与端口号同步
	#这个文件并不需要手动配置,这个配置文件有Redis生成并更新, 
	cluster-node-timeout 15000
	#节点互连超时的阀值。集群节点超时毫秒数,默认15秒
	appendonly yes
	#Redis会把每次写入的数据在接收后都写入 appendonly.aof 文件, 
	#每次启动时Redis都会先把这个文件的数据读入内存里,先忽略RDB文件。
	appendfsync everysec
	#Redis会把每次写入的数据在接收后每秒写入一次 appendonly.aof 文件
	requirepass 123456    
	#设置redis密码
	masterauth 123456    
	#主从同步master的密码(如果没有设置redis密码,则无需配置)

注意:

	redis启用密码认证一定要requirepass和masterauth同时设置。如果主节点设置了requirepass登录验证,在主从切换,slave在和master做数据同步的时候首先需要发送一个ping的消息给主节点判断主节点是否存活,再监听主节点的端口是否联通,发送数据同步等都会用到master的登录密码,否则无法登录,log会出现响应的报错。也就是说slave的masterauth和master的requirepass是对应的,所以建议redis启用密码时将各个节点的masterauth和requirepass设置为相同的密码,降低运维成本。当然设置为不同也是可以的,注意slave节点masterauth和master节点requirepass的对应关系即可

三、启动Redis

集群内每台服务器分别启动两个redis

cd /data/redis/redis-5.0.13/src/
./redis-server /data/redis/redis-cluster/conf/redis_8001.conf
./redis-server /data/redis/redis-cluster/conf/redis_8002.conf

四、创建Redis Cluster

./redis-cli -a  {redis密码} --cluster create {redis集群地址} --cluster-replicas 1

执行如上命令后,会弹出下边提示,输入yes回车即可:

Can I set the above configuration? (type ‘yes’ to accept):

注意:

redis5.0以上集群创建方式改为了C编写的redis-cli创建,不用再安装麻烦的ruby。–cluster-replicas 1指定从库数量1,创建顺序三主-三从。即主-主-主-从-从-从。多个redis之间用空格隔开

五、验证集群Redis-Cluster

1.登录redis集群

./redis-cli -a {redis密码} -h {redis地址} -p {redsi端口} -c

2.验证集群信息

{redis地址}:{redis端口}>cluster info #查看集群信息
{redis地址}:{redis端口}>cluster nodes #查看集群节点列表

3.查看集群内主从关系

./redis-cli -a {redis密码} -h {redis地址} -p {redsi端口} -c cluster slots | xargs -n8 | awk ‘{print $3":"$4"->"$6":"$7}’ | sort -nk2 -t ‘:’ | uniq

4.数据验证

插入数据:
{redis地址}:{redis端口}> set mykey "Hello Redis"
{redis地址}:{redis端口}> get mykey
登录其他节点查看数据:
redis-cli -a {redis密码} -h  {redis地址} -p {redsi端口} -c
{redis地址}:{redis端口}> get mykey

5.集群故障转移

	将其中一个redis-master停止掉后、其对应的slave节点会被选举为master节点,旧master节点重新恢复时,其角色会成为slave。具体可自行验证,验证时可开启日志查看相关信息。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值