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的两个命令(KEYS 和 SCAN)
Apr 12 Redis
redis限流的实际应用
Apr 24 Redis
浅谈Redis存储数据类型及存取值方法
May 08 Redis
详解redis分布式锁的这些坑
May 19 Redis
Windows下redis下载、redis安装及使用教程
Jun 02 Redis
Windows中Redis安装配置流程并实现远程访问功能
Jun 07 Redis
redis实现的四种常见限流策略
Jun 18 Redis
浅析Redis Sentinel 与 Redis Cluster
Jun 24 Redis
Redis主从配置和底层实现原理解析(实战记录)
Jun 30 Redis
嵌入式Redis服务器在Spring Boot测试中的使用教程
Jul 21 Redis
windows安装 redis 6.2.6最新步骤详解
Apr 26 Redis
解决 redis 无法远程连接
May 15 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
如何将一个表单同时提交到两个地方处理
2006/10/09 PHP
PHP的引用详解
2015/02/22 PHP
Javascript获取窗口(容器)的大小及位置参数列举及简要说明
2012/12/09 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
2013/11/19 Javascript
js中用window.open()打开多个窗口的name问题
2014/03/13 Javascript
javascript匿名函数实例分析
2014/11/18 Javascript
nodejs简单实现中英文翻译
2015/05/04 NodeJs
js改变Iframe中Src的方法
2015/05/05 Javascript
原生js实现addClass,removeClass,hasClass方法
2016/04/27 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
jquery实现数字输入框
2017/02/22 Javascript
微信小程序 动态的设置图片的高度和宽度详解及实例代码
2017/02/24 Javascript
原生js实现选项卡功能
2017/03/08 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
深入理解React Native原生模块与JS模块通信的几种方式
2017/07/24 Javascript
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
Javascript 类型转换、封闭函数及常见内置对象操作示例
2019/11/15 Javascript
vue3.0 上手体验
2020/09/21 Javascript
前端 javascript 实现文件下载的示例
2020/11/24 Javascript
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python中的startswith和endswith函数使用实例
2014/08/25 Python
详解python中的装饰器
2018/07/10 Python
Python解析Excle文件中的数据方法
2018/10/23 Python
python 使用re.search()筛选后 选取部分结果的方法
2018/11/28 Python
python调用c++返回带成员指针的类指针实例
2019/12/12 Python
python中提高pip install速度
2020/02/14 Python
Fossil德国官网:化石手表、手袋、珠宝及配件
2019/12/07 全球购物
高级方案规划工程师岗位职责
2013/11/29 职场文书
有关打架的检讨书
2014/01/25 职场文书
行政部岗位职责范本
2014/03/13 职场文书
温馨提示标语
2014/06/26 职场文书
法院答辩状格式
2015/05/22 职场文书
志愿者服务宣传标语口号
2015/12/26 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
MySQL查询日期时间
2022/05/15 MySQL