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 查看所有的key方式
May 07 Redis
基于Redis位图实现用户签到功能
May 08 Redis
基于Redis实现分布式锁的方法(lua脚本版)
May 12 Redis
详解Redis主从复制实践
May 19 Redis
redis requires ruby version2.2.2的解决方案
Jul 15 Redis
Redis 常见使用场景
Aug 30 Redis
高并发下Redis如何保持数据一致性(避免读后写)
Mar 18 Redis
Redis集群节点通信过程/原理流程分析
Mar 18 Redis
redis 解决库存并发问题实现数量控制
Apr 08 Redis
详解Redis的三种常用的缓存读写策略步骤
May 06 Redis
Redis 限流器
May 15 Redis
Redis实现主从复制方式(Master&Slave)
Jun 21 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概率计算函数汇总
2015/09/13 PHP
extjs grid取到数据而不显示的解决
2008/12/29 Javascript
JQuery跨Iframe选择实现代码
2010/08/19 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
自己写的Javascript计算时间差函数
2013/10/28 Javascript
js取消单选按钮选中并判断对象是否为空
2013/11/14 Javascript
鼠标滑在标题上显示图片的JS代码
2013/11/19 Javascript
jquery自动将form表单封装成json的具体实现
2014/03/17 Javascript
对 jQuery 中 data 方法的误解分析
2014/06/18 Javascript
JS使用for循环遍历Table的所有单元格内容
2014/08/21 Javascript
JavaScript函数使用的基本教程
2015/06/04 Javascript
javascript 使用for循环时该注意的问题-附问题总结
2015/08/19 Javascript
JS实现网页每隔3秒弹出一次对话框的方法
2015/11/09 Javascript
浅谈Nodejs应用主文件index.js
2016/08/28 NodeJs
Vue.JS项目中5个经典Vuex插件
2017/11/28 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
three.js利用射线Raycaster进行碰撞检测
2020/03/12 Javascript
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
python发布模块的步骤分享
2014/02/21 Python
Flask框架实现给视图函数增加装饰器操作示例
2018/07/16 Python
python递归全排列实现方法
2018/08/18 Python
python计算阶乘和的方法(1!+2!+3!+...+n!)
2019/02/01 Python
Python面向对象程序设计类的封装与继承用法示例
2019/04/12 Python
利用python开发app实战的方法
2019/07/09 Python
pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法
2020/09/16 Python
Feelunique澳大利亚:欧洲的化妆品零售电商
2019/12/18 全球购物
不开辟用于交换数据的临时空间,如何完成字符串的逆序
2012/12/02 面试题
好的自荐信的要求
2013/10/30 职场文书
《纸船和风筝》教学反思
2014/02/15 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
土地转让协议书范本
2014/04/15 职场文书
2014年体育部工作总结
2014/11/13 职场文书
爱国主义教育主题班会
2015/08/13 职场文书
Java基础之this关键字的使用
2021/06/30 Java/Android
MySQL外键约束(FOREIGN KEY)案例讲解
2021/08/23 MySQL