Redis主从复制操作和配置详情


Posted in Redis onSeptember 23, 2022

前言

环境:CentOS7下安装Redis集群,默认已安装好5.0及以上版本,操作包括:

  • Redis-server环境变量
  • 配置配置集群的
  • Redis.confRedis主从配置和启动
  • 测试主从机的数据一致性和读写分离

一、Redis-server环境变量

启动redis服务报错:

-bash: redis-server: command not found

原因:

没有配置对应命令,类似于window的环境变量,所以命令找不到

解决办法:

将安装目录下的redis-server执行文件路径配置到系统执行命令里
ln -s /usr/local/redis/redis-4.0.9/src/redis-server /usr/bin/redis-server

其中
/usr/local/redis/redis-4.0.9/src/redis-server 为安装目录下的redis-server服务文件地址

二、配置集群的Redis.conf

我们在一台服务器上开启三个Redis服务,模拟redis集群,一主两从,结构如下 :

Redis主从复制操作和配置详情

端口信息为7001,7002,7003(若使用的服务器记得开启端口的防火墙)

1.先创建7001~7003的三个目录,将配置文件放入对应目录并进行配置

Redis主从复制操作和配置详情

 Redis.conf配置:

  • bind:绑定的 IP,默认是本地,可以指定 IP,表示只有指定的 IP 才可访问,注释掉的话则全部 IP 都可访问。(我们是本地开三个服务,绑定不用动,如果是分布式就0.0.0.0)
  • protected-mode :保护模式(无密码 + 无绑定 = 本地访问),默认开启。这个不用动
  • port :端口,改为700x
  • daemonize :表示以守护进程的方式运行,默认 no,需要改为 yes,避免关闭客户端后,redis 也跟着关闭。我们实验用的话,可以关掉
  • requirepass :密码,默认没有密码,如果需要则设置密码
[root@VM-0-4-centos ~]# redis-cli -p 6379
# 获取密码
127.0.0.1:6379> config get requirepass	
1) "requirepass"
2) ""
# 设置密码
>127.0.0.1:6379> config set requirepass	12455
OK
# 重新关闭客户端再进入时,输入一下命令,则显示无权限
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
# 输入密码
127.0.0.1:6379> auth 12455
OK

三、配置主从服务器

有临时和永久两种模式:

  • 修改配置文件(永久生效)
  • 在redis.conf中添加一行配置:slaveof <masterip> <masterport>
  • 使用redis-cli客户端连接到redis服务,执行slaveof命令(重启后失效):

slaveof <masterip> <masterport>

四、启动三台Redis服务器

[root@localhost bin]# redis-server /myredis/redis6379.conf
[root@localhost bin]# redis-server /myredis/redis6380.conf
[root@localhost bin]# redis-server /myredis/redis6381.conf
[root@localhost bin]# ps -ef | grep redis
root       2999      1  0 11:58 ?        00:00:00 redis-server *:6379
root       3013      1  0 11:59 ?        00:00:00 redis-server *:6380
root       3019      1  0 11:59 ?        00:00:00 redis-server *:6381
root       3025   2189  0 11:59 pts/0    00:00:00 grep --color=autoredis

 使用命令登录三个redis

redis -p  <port> -a 密码   指定端口号登录redis

执行下列操作以测试:

  • 利用redis-cli连接7001,执行set num 123
  • 利用redis-cli连接7002,执行get num,再执行set num 666
  • 利用redis-cli连接7003,执行get num,再执行set num 888

我们对从机进行写操作发现报错

对主机进行写操作,从机可以获取

可以发现,只有在7001这个master节点上可以执行写操作,7002和7003这两个slave节点只能执行读操作。

到此这篇关于Redis主从复制操作和配置详情的文章就介绍到这了,更多相关Redis主从复制 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Redis 相关文章推荐
redis 限制内存使用大小的实现
May 08 Redis
基于Redis实现分布式锁的方法(lua脚本版)
May 12 Redis
redis实现共同好友的思路详解
May 26 Redis
了解Redis常见应用场景
Jun 23 Redis
详解redis在微服务领域的贡献
Oct 16 Redis
Window server中安装Redis的超详细教程
Nov 17 Redis
SpringBoot整合Redis入门之缓存数据的方法
Nov 17 Redis
redis缓存存储Session原理机制
Nov 20 Redis
Spring Boot实战解决高并发数据入库之 Redis 缓存+MySQL 批量入库问题
Feb 12 Redis
解决redis批量删除key值的问题
Mar 23 Redis
Redis基本数据类型String常用操作命令
Jun 01 Redis
Redis唯一ID生成器的实现
Jul 07 Redis
基于Redission的分布式锁实战
基于redis+lua进行限流的方法
Jul 23 #Redis
Redis过期数据是否会被立马删除
Jul 23 #Redis
如何使用注解方式实现 Redis 分布式锁
Jul 23 #Redis
redis lua限流算法实现示例
Redis Lua脚本实现ip限流示例
Jul 15 #Redis
redis protocol通信协议及使用详解
Jul 15 #Redis
You might like
开源php中文分词系统SCWS安装和使用实例
2014/04/11 PHP
PHP 面向对象程序设计(oop)学习笔记(三) - 单例模式和工厂模式
2014/06/12 PHP
PHP实现QQ快速登录的方法
2016/09/28 PHP
javascript div 遮罩层封锁整个页面
2009/07/10 Javascript
JS 对象介绍
2010/01/20 Javascript
Chrome中模态对话框showModalDialog返回值问题的解决方法
2010/05/25 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
浅谈JavaScript中setInterval和setTimeout的使用问题
2015/08/01 Javascript
直接拿来用的15个jQuery代码片段
2015/09/23 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
2017/06/04 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
JavaScript制作3D旋转相册
2020/08/02 Javascript
Vue如何获取数据列表展示
2019/12/11 Javascript
vue 实现把路由单独分离出来
2020/08/13 Javascript
jQuery实现手风琴特效
2021/01/11 jQuery
[01:08:10]2014 DOTA2国际邀请赛中国区预选赛 SPD-GAMING VS LGD-CDEC
2014/05/22 DOTA
Python实现查找匹配项作处理后再替换回去的方法
2017/06/10 Python
Python实现OpenCV的安装与使用示例
2018/03/30 Python
基于wxPython的GUI实现输入对话框(1)
2019/02/27 Python
Django模板Templates使用方法详解
2019/07/19 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
2019/09/16 Python
Python 没有main函数的原因
2020/07/10 Python
eBay爱尔兰站:eBay.ie
2019/08/09 全球购物
采用怎样的方法保证数据的完整性
2013/12/02 面试题
俄语专业职业生涯规划
2014/02/26 职场文书
实用的简历自我评价
2014/03/06 职场文书
公司委托书格式范本
2014/09/16 职场文书
建设工程授权委托书
2014/09/22 职场文书
厉行节约工作总结
2015/08/12 职场文书
初三语文教学反思
2016/03/03 职场文书
学会掌握自己命运的十条黄金法则:
2019/08/08 职场文书
用python修改excel表某一列内容的操作方法
2021/06/11 Python