Redis HA篇 +主从搭建
发布日期:2021-06-29 12:02:37 浏览次数:2 分类:技术文章

本文共 4853 字,大约阅读时间需要 16 分钟。

说明:本文为面向Redis主从搭建的指导手册

标签:Redis主从、Redis高可用、Redis读写分离、Redis 4.0.2
注意:文中删去了不需要的多余部分,让初学者一目了然一学就会
温馨提示:如果您发现本文哪里写的有问题或者有更好的写法请留言或私信我进行修改优化


★ 前言

※ 该文档架构采用:单机1主2从架构(相当于3个redis)
※ 系统信息:Centos 6.3 x86_64 4GB内存
※ 为了方便初学者学习了解redis本文简化了所有步骤
※ Redis全称“remote dictionary server”中文远程字典服务
※ Redis属于NoSql数据库中的key-value类型
※ Redis的哨兵机制是redis2.8开始支持,而集群模式是redis3.0开始支持。
※ Redis的sentinel系统用于管理多个redis服务器,该系统主要执行三个任务:监控、提醒、自动故障转移。
※ Redis的主为读写模式,从为只读模式;
※ Redis的更多参数介绍参考本人其他相关文档

★ 相关文章

★ 配置主从

※ 复制配置文件
cp /soft/redis-4.0.2/redis.conf    /soft/redis-4.0.2/redis_6380.conf
cp /soft/redis-4.0.2/redis.conf    /soft/redis-4.0.2/redis_6381.conf
cp /soft/redis-4.0.2/redis.conf    /soft/redis-4.0.2/redis_6382.conf

※ 修改配置文件(主)

# 相关文件位置:/soft/redis-4.0.2/redis_6380.conf
# 修改主从端口:port
sed -i 's/^port 6379/port 6380/g' /soft/redis-4.0.2/redis_6380.conf
cat /soft/redis-4.0.2/redis_6380.conf |grep "^port 63"
# 修改主从进程:pidfile
sed -i 's/redis_6379.pid/redis_6380.pid/g' /soft/redis-4.0.2/redis_6380.conf
cat /soft/redis-4.0.2/redis_6380.conf |grep "redis_6380.pid"

※ 修改配置文件(从A)

# 相关文件位置:/soft/redis-4.0.2/redis_6381.conf
# 修改主从端口:port
sed -i 's/^port 6379/port 6381/g' /soft/redis-4.0.2/redis_6381.conf
cat /soft/redis-4.0.2/redis_6381.conf |grep "^port 63"
# 修改主从进程:pidfile
sed -i 's/redis_6379.pid/redis_6381.pid/g' /soft/redis-4.0.2/redis_6381.conf
cat /soft/redis-4.0.2/redis_6381.conf |grep "redis_6381.pid"
# 修改从的slaveof指向主
echo "slaveof 127.0.0.1 6380" >> /soft/redis-4.0.2/redis_6381.conf
cat /soft/redis-4.0.2/redis_6381.conf |grep "^slaveof"

※ 修改配置文件(从B)

# 相关文件位置:/soft/redis-4.0.2/redis_6382.conf
# 修改主从端口:port
sed -i 's/^port 6379/port 6382/g' /soft/redis-4.0.2/redis_6382.conf
cat /soft/redis-4.0.2/redis_6382.conf |grep "^port 63"
# 修改主从进程:pidfile
sed -i 's/redis_6379.pid/redis_6382.pid/g' /soft/redis-4.0.2/redis_6382.conf
cat /soft/redis-4.0.2/redis_6382.conf |grep "redis_6382.pid"
# 修改从的slaveof指向主
echo "slaveof 127.0.0.1 6380" >> /soft/redis-4.0.2/redis_6382.conf
cat /soft/redis-4.0.2/redis_6382.conf |grep "^slaveof"

★ 启动主从
# 需要开启3个会话,分别执行挂起
/soft/redis-4.0.2/src/redis-server /soft/redis-4.0.2/redis_6380.conf
/soft/redis-4.0.2/src/redis-server /soft/redis-4.0.2/redis_6381.conf
/soft/redis-4.0.2/src/redis-server /soft/redis-4.0.2/redis_6382.conf

★ 查看状态
echo "info replication" | /soft/redis-4.0.2/src/redis-cli -p 6380
echo "info replication" | /soft/redis-4.0.2/src/redis-cli -p 6381
echo "info replication" | /soft/redis-4.0.2/src/redis-cli -p 6382

★ 测试数据传输
echo "set zzt_01 'hello zzt'" | /soft/redis-4.0.2/src/redis-cli -p 6380
echo "get zzt_01" | /soft/redis-4.0.2/src/redis-cli -p 6380
echo "get zzt_01" | /soft/redis-4.0.2/src/redis-cli -p 6381
echo "get zzt_01" | /soft/redis-4.0.2/src/redis-cli -p 6382
echo "del zzt_01" | /soft/redis-4.0.2/src/redis-cli -p 6380
echo "get zzt_01" | /soft/redis-4.0.2/src/redis-cli -p 6380

★ 测试从节点自动重启
该模式下,从节点重启后会自动加入主从,并且会自动同步主库数据

★ 测试主节点自动重启
从节点会一直等待主节点的重启,待主节点启动后自动加入,恢复往常
该模式需要手动切换主从,所以一般推荐使用自动管理的哨兵模式

★ 手动主从切换
# 当前状态
    从:6380
    从:6381
    主:6382
# 目标状态
    主:6380
    从:6381
    宕:6382
# 停止主库,设立新主,从库重定向
echo "shutdown" | /soft/redis-4.0.2/src/redis-cli -p 6382
echo "slaveof no one" | /soft/redis-4.0.2/src/redis-cli -p 6380
echo "slaveof 127.0.0.1 6380" | /soft/redis-4.0.2/src/redis-cli -p 6381

★ 案例

[root@main src]# echo "info replication" | /soft/redis-4.0.2/src/redis-cli -p 6380# Replicationrole:masterconnected_slaves:2slave0:ip=127.0.0.1,port=6381,state=online,offset=28,lag=0slave1:ip=127.0.0.1,port=6382,state=online,offset=28,lag=1master_replid:348f1968b30ca05ef20ae66920fd9c92679af2bfmaster_replid2:0000000000000000000000000000000000000000master_repl_offset:28second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:28[root@main src]# echo "info replication" | /soft/redis-4.0.2/src/redis-cli -p 6381# Replicationrole:slavemaster_host:127.0.0.1master_port:6380master_link_status:upmaster_last_io_seconds_ago:2master_sync_in_progress:0slave_repl_offset:28slave_priority:100slave_read_only:1connected_slaves:0master_replid:348f1968b30ca05ef20ae66920fd9c92679af2bfmaster_replid2:0000000000000000000000000000000000000000master_repl_offset:28second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:28[root@main src]# echo "info replication" | /soft/redis-4.0.2/src/redis-cli -p 6382# Replicationrole:slavemaster_host:127.0.0.1master_port:6380master_link_status:upmaster_last_io_seconds_ago:2master_sync_in_progress:0slave_repl_offset:28slave_priority:100slave_read_only:1connected_slaves:0master_replid:348f1968b30ca05ef20ae66920fd9c92679af2bfmaster_replid2:0000000000000000000000000000000000000000master_repl_offset:28second_repl_offset:-1repl_backlog_active:1repl_backlog_size:1048576repl_backlog_first_byte_offset:1repl_backlog_histlen:28[root@main src]#

※ 如果您觉得文章写的还不错, 别忘了在文末给作者点个赞哦 ~

over

转载地址:https://blog.csdn.net/zzt_2009/article/details/114395196 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Redis HA篇 +哨兵搭建
下一篇:Redis 运维篇+安装单实例

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2024年04月17日 04时47分51秒