redis主从复制 从而 数据备份和读写分离
蜗牛Redis系列文章目录http://www.cnblogs.com/tdws/tag/NoSql/
爬虫转载注明地址本文地址—博客园蜗牛 http://www.cnblogs.com/tdws/p/5705782.html
云服务器过期了,这次测试就放在本地(127.0.0.1)。三个redis客户端,端口分别为6379,6380,6381。
首先将你的redis复制三份(我使用的是redis3.2.1),如果你下载不到,可以留下邮箱或者给我私信。
首先打开cmd,用cd找到你的redis文件夹,我的操作是
在你的第一个redis客户端文件夹配置文件中,搜索port,找到如下位置
端口号设置为6379(默认的。后面一个,两个或者多个客户端分别修改为你想使用的端口号,我这里使用6380,6381)
这样一来,6379的rendi客户端已经启动。后面的客户端只需要你修改配置文件中的端口号后,以同样的方式打开redis。
下面打开你每个redis所对应的客户端操作控制台,开启新cmd,切换到你需要的盘符下面,方式如下。
这样一来 redis客户端操作控制台已经启动,我们可以正常操作set get flushdb save等。
当然其他两个端口端口的redis操作控制台也这样启动,不过把你的端口号修改为你所对应的。
下面我将对6379作为master主节点,6380,6381为slave从节点。
那么测试操作过程如下:
首先flushall,确保清空缓存,接下来set三条数据并使用keys *命令来查看当前所有key val
下面,我们来手动让6380端口的redis来作为6379的从节点,操作如下:
使用slaveof命令来达到目的。当然在这样的命令下,redis挂掉后,他们的主从关系就不存在了,稍后会讲到如何永久确定主从关系。
我们还是先来测试一下数据是否同步过来了。
依然使用keys *命令,我们可以看到结果。主从同步数据成功。那么6381端口同步也是一样的。
现在我在master 6379添加数据后来查看从节点的内容。
从节点中再次使用keys *命令查看:
可以看到6380已同步master节点的数据。
下面我们在尝试一项操作:
我试图在从节点中set值,提示从服务器是只读的。不过我们可以在从节点中操作save,这也算是一种redis数据备份吧。
既然这样了,我们的主从复制已经配置结束。实现读写分离的原理也正是如此,在多个从服务器中读取数据,在master中操纵数据。
不过我认为这在普通场景中根本用不到,除非写量相对少,而读取量特别的,我们才选择读写分离。
还有最后要说设置永久主从关系的方法就是,你在从节点的配置文件中,搜索slaveof关键字找到:
做如上配置,每当你重启redis服务,自动同步所有数据。
普通配置策略情况下,主挂从全挂,当然我们也有办法来解决这个问题。
下一篇 Redis并发锁 http://www.cnblogs.com/tdws/p/5712835.html
有任何疑问和建议欢迎交流。
如果我的点滴分享对您有点低帮助,欢迎点击下方红色关注,我将持续分享,共同进步
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?