redis主从配置 redis哨兵模式

redis主从复制(两台从一台主) 在同一台linux虚拟机下

配置dhub位置   设置的位置为根目录下的  myredis  配置生成aof文件和rdb文件的位置

配置后台启动

配置密码

 开启aof

aof和rdb同时开启  系统默认取aof的数据

如果aop文件损坏 通过/usr/local/bin/redis-check-aof--fix appendonly.aof进行恢复

备份被写坏的aof文件

恢复:重启redis 然后重新加载

  • AOF文件是一个只进行追加的日志文件
  • Redis可以在AOF文件体积变的过大的时候自动在后台对AOF进行重写
  • AOF文件有序地保存了对数据库执行的所有写的操作,这些写入操作以Redis协议的格式保存,因此AOF文件的内容非常容易被人读懂,对文件进行分析也很轻松。
  • 对于相同的数据集来说,AOF文件的体积通常要大于RDB文件的体积
  • 根据所使用的fsync策略,AOF的速度可能会慢于RDB

  • 官方推荐两个都启用。
  • 如果对数据不敏感,可以选单独用RDB。
  • 不建议单独用 AOF,因为可能会出现Bug。
    • 如果只是做纯内存缓存,可以都不用。

Redis6 主从复制(6380为主  6379和6381为从)

master以写为主  slave以读为主

新建redis6379.conf,填写以下内容

include /myredis/redis.conf
pidfile /var/run/redis_6379.pid
port 6379
dbfilename dump6379.rdb

新建redis6380.conf,填写以下内容

include /myredis/redis.conf
pidfile /var/run/redis_6380.pid
port 6380
dbfilename dump6380.rdb

新建redis6381.conf,填写以下内容

 include /myredis/redis.conf
pidfile /var/run/redis_6381.pid
port 6381
dbfilename dump6381.rdb

 启动三台redis

[root@iZ2ze2rikqlh3ql1n2cw61Z bin]# kill -9 57468
[root@iZ2ze2rikqlh3ql1n2cw61Z bin]# ./redis-server /myredis/redis6379.conf 
[root@iZ2ze2rikqlh3ql1n2cw61Z bin]# ./redis-server /myredis/redis6380.conf 
[root@iZ2ze2rikqlh3ql1n2cw61Z bin]# ./redis-server /myredis/redis6381.conf

查看是否启动成功

 查看三台主机的运行情况

如果有密码需要配置在客户端运行  (如果配置哨兵模式的话  需要在三台个端口运行)

config set masterauth 123456(密码为123456)

如果在Redis配置文件中设置了masterauth密码,但没有设置requirepass密码,那么连接到Redis服务器上的客户端需要提供masterauth密码才能进行主从复制操作。然而,对于其他操作(如读取或写入数据)来说,客户端不需要提供密码。这意味着,即使没有设置requirepass密码,客户端仍然可以直接执行非复制操作。因此,建议同时设置requirepass和masterauth密码,以确保对Redis服务器的整体安全进行综合保护。

config rewrite

 

发现三台主机均为master

在要改为从节点的两台上运行

slaveof 127.0.0.1 6379

slaveof 127.0.0.1 6380

rdb

优势

适合大规模的数据恢复

对数据完整性和一致性要求不高更适合使用

节省磁盘空间

恢复速度快

劣势

fork的时候内存中的数据被克隆了一份  大致有两倍的膨胀值需要考虑

虽然redis在fork时使用了写时拷贝技术  但是如果数据庞大的话还是比较消耗性能

save

 383 save 3600 1 # an hour至少有1个key发生变化做持久化
 384 save 300 100 # 5 minutes至少有100个key发生变化做持久化
 385 save 60 10000 #或60秒内10000key发生了变化做持久化操作。

redis集群反客为主(主节点挂掉后 手动把从节点变为主节点)

主节点为6379

在6380上运行

slaveof 127.0.0.1 6379

在6381上运行

slaveof 127.0.0.1 6380

 然后使主服务器挂掉

发现6380 和6381为从节点

在6380上运行

127.0.0.1:6380> slaveof no one

 查看6380状态 发现6380变成了主节点

Redis 高可用(哨兵模式 反客为主自动版)

 vi sentinel.conf

sentinel monitor mymaster 127.0.0.1 6380 1
# 如果master有密码需要配置在该文件中配置密码
sentinel auth-pass mymaster 123456

 查看三个节点的运行情况 (为一主二从  主节点为6380)

运行sentinel.conf

[root@localhost myredis]# /usr/local/bin/redis-sentinel ./sentinel.conf

 此时关闭6380

 可以发现6381变成了主节点

同时查看sentinel.conf 文件6381变成了主节点

启动6380 查看6380状态

 故障恢复

  • 从旧的master的slave中选取新的master:从所有的从服务挑选一个作为主服务,将其变为主服务,选择的条件依次是:
    • 选择优先级靠前的(replica-priority 100,值越小优先级越高)
    • 选择偏移量最大的(看所有从服务器中谁同步主服务器的数据量最接近就选谁)
    • 选择runid最小的从服务(如果所有从服务器同步的值的数量一样多,那么就用这个方式选择)
  • 其他的slave认新的master为主节点:挑选出新的主服务之后sentinel向原主服务的从服务发送slaveof新主服务的命令,复制新的master
  • 当旧的master启动时 成为新的master的slave:当已下线的服务重新上线的时候,sentinel会向其发送slaveof命令,让其称为新主的从
  • 优先级在redis.conf中默认:

    replica-priority 100(R670),值越小优先级越高

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值