redis的主从同步
2024-10-20 07:54:30
一.redis的主从操作流程
1. 准备三个redis配置文件
#进入redis的配置文件夹,准备好这几个文件,6379不用管,默认的,和这次操作无关
[root@qishi ~]# cd /etc/redis/ [root@qishi redis]# ll
total 80
-rw-r--r--. 1 root root 57774 Apr 20 15:31 6379.conf
-rw-r--r--. 1 root root 183 Apr 20 16:32 6380.conf #主数据库master
-rw-r--r--. 1 root root 206 Apr 20 16:36 6381.conf #从数据库slave
-rw-r--r--. 1 root root 206 Apr 20 16:36 6382.conf #从数据slave
2.写入以下配置
#注意,一下内容指定的路径一定要有,就是说要自己先创建好,否则可能报错
port 6380
daemonize yes
pidfile /etc/redis/data/6380/redis.pid
loglevel notice
logfile "/etc/redis/data/6380/redis.log"
dbfilename dump.rdb
dir /etc/redis/data/6380
protected-mode no
3.目前这三个配置文件配置一样,我们只需修改端口,让他们的端口不用即可(路径也不一样)
#需要在配置所在的文件夹中操作,同理其他两个配置文件指定路径也要创建好
#可以使用这一条命令通过6380.conf生成6381和6382的配置文件
sed "s/6380/6381/g" 6380.conf > 6381.conf
sed "s/6380/6382/g" 6380.conf > 6382.conf
4. 在6381和6382下添加以下配置,使之成为从数据库
slaveof 127.0.0.1 6380 #可以使用以下一行命令直接追加写入到两个从库的配置文件中
echo "slaveof 127.0.0.1 6380" >>6381.conf
echo "slaveof 127.0.0.1 6380" >>6382.conf
5. 确认三个配置文件无误
6. 开启这三个redis服务,确保三个服务启动正常
[root@qishi redis]# redis-server /etc/redis/6380.conf
[root@qishi redis]# redis-server /etc/redis/6381.conf
[root@qishi redis]# redis-server /etc/redis/6382.conf
7. 查看redis主从数据库的状态
redis-cli -p 6380 info replication
redis-cli -p 6381 info replication
redis-cli -p 6382 info replication
8. 验证redis主从复制情况
(1)先验证三个数据库是否能正常连接
redis-cli -p 6380
redis-cli -p 6381
redis-cli -p 6382
( 2 ) 在6380上面写入数据,查看6381和6382是否能够正常同步
(3)在从数据库写入数据
9. 手动进行主从复制故障切换
(1) 杀掉6380的进程,模拟主库故障
kill -9 进程ID
(2)在6381和6382上手动指定一个主库(我现在指定6382为主库)
( 3 ) 在6382的redis上执行这一行命令
slaveof no one #去除从库身份
(4) 在6381上执行以下命令,将原来的指向6380改为指向6382
原来的配置指向:
#去除原来的从库身份并且重新指定主库,要确保要指定的主库已经执行了slaveof no one slaveof no one
slaveof 127.0.0.1 6382
(5) 验证新的主从架构状态
在6382上查看主从信息
(6) 验证新的主从架构是否可以正常写入数据,同步数据
如果可以,说明主从正常
如果想永久生效必须:去修改配置文件
最新文章
- 迷之this?(转)
- 《zw版·Halcon-delphi系列原创教程》 Halcon分类函数·简明中文手册 总览
- C++模板元编程 - 函数重载决议选择工具(不知道起什么好名)完成
- session过期时ajax请求刷新浏览器
- python入门总结-函数
- ios专题 - 多线程非GCD(1)
- 巧用Session Manager还原Firefox丢失会话
- Android:Notification的生成与取消
- 中文颜色名称与RGB颜色对照表
- bzoj usaco 金组水题题解(1)
- android studio编译慢的问题
- 对SVN的落地与实践总结
- 轻量级数据库Sqlite的使用
- eclipse运行无错的ssm项目,迁移到idea出错
- JS基础题
- [php] php - json_encode 函数
- tomcat启动报错:Injection of autowired dependencies failed
- MVC ---- ckeditor 循环遍历并绑定blur事件
- web.xml context-param配置
- [NOIP2017]逛公园 最短路图 拓扑序DP