Lnmp架构-Redis

网站:www.redis.cn

redis 部署

make的时候需要gcc和make 如果在纯净的环境下需要执行此命令

root@server3 redis-6.2.4# yum install make gcc -y

注释一下这几行

vim /etc/redis/6739.conf

2.Redis主从复制

设置 11 是master 12 13 是slave

在12 上

其他节点以此内推

此时在 11 master 上

slave 角色只能读 没有修改的权限

当在master上

在slave会实现同步

redis高可用

redis 主从切换

redis 主从原理:基于rdb 快照实现 它和MySQL的二进制日志的差别(数据类型不同)

在执行主从的时候:slave和master要先做一个认证 发起一个同步请求,master会执行一个bgsave(异步模式)/save(阻塞模式),异步模式的时候,bgsave会做一个rdb快照,然后把rdb快照发给slave,slave会做一个动作,清掉slave端所有的数据(flushall),然后slave会再次加载快照,

快照做完之后,还会有变更数据,所以放在缓存里面,然后接下来会用replicationfeedslave()增量函数 一条一条发给slave,然后再给slave端做同步 redis主从基于rdb快照格式出现

redis 主从基于快照rdb快照格式实现

一主多从的架构中 做高可用切换 redis 里自带

2 表示的意思:怎么判断master出故障呢,必须要两个节点说master出故障了 才能发起故障切换

当第一个节点发现master出现故障 会进入一种主观下线状态

当第二个节点发现master出现故障 会再次进入一种主观下线状态

两次的主观下线会触发一次客观下线,这个时候master会开始真正进行主从切换

三个节点就设置为2 两个节点就设置为1

拷贝文件的动作 一定要在启动之前

其它主机直接启动服务,无需更改配置文件

这就是哨兵模式

此时 在开一个终端11 11 此时是master

关闭master

redis集群 会自动切换master

当原来的master再次启动后,会以slave身份加入集群

在切换的时候可能会出现的问题

客户端到master没什么问题,master 到slave端的网络如果出现故障

这个时候就会把master踢出去 选举出新的master slave接上去

当网络又正常 原来的master 会同步当前集群的配置 把自己变成slave 接入到新的master 这样的话 原来的master上所有数据都会丢失

但是 客户端到master是好的 这个时候 客户端会持续往master里写数据 客户一直在写 但是master到slave出现故障 master就会变为slave 数据就会被清掉

怎么解决呢

必需保证后端有两个slave可以写

添加 min-slave-to-write=2 到配置文件

保证在主从切换的时候 客户端不要给master里面写 如果master发现都连不上两个slave 就不要往里面写入数据了 避免数据丢失

Redis集群

无中心化设计 每个节点都可以接入集群 不管是主从 都可以进行读写 在接入集群之后都可以做调度 做重定向 但是 它的整合度太高了 二次开发成本太高

会在当前的目录里 生成对应的配置文件和数据

这样就创建好了一个集群

查看命令帮助

redis-cli --help

获取集群状态

主从关系的详细信息

redis-cli --cluster 实际就是把总共16384个哈希槽 ,均摊到这三个master 进行存储 每个节点都会分得一定比例的哈希槽,哈希槽就是存数据用的

连接集群

关闭redis实例,集群自动切换

30002的 master 关闭 30005之前是slave 就会接管变成master

此时 数据就会在30005上 数据不会丢失

以上就是 redis 内置的高可用切换

如果再把脚本启动起来 这时候 刚才关闭的30002 就会被再次拉起来

拉起来之后 30002 就是slave

此时 互换了角色

设么么时候会导致这个进群节点不可用

1 这16384这些哈希槽如果不完整集群不可用

2.同一这个集群的半数master同时挂掉

再启动两个redis实例

ps ax

在线添加集群节点

新添加的节点没有hash槽,角色时是master

添加slave节点

重新迁移hash槽

删除哪个节点的时候

就得把这个节点上的哈希槽迁徙到别的机器上

要不然就会造成哈希槽不完整 集群就会shutdown

相关推荐
Thecozzy4 小时前
线上 Bug 排查与修复实录
架构
鹏大师运维4 小时前
为什么信创电脑装软件总提示“软件包架构不匹配”?
linux·运维·架构·国产化·麒麟·deb·统信uos
海南java第二人6 小时前
Nebula Graph 实战:基于图数据库存储 CMDB 实体关系
数据库·图数据库·nebula
曹牧6 小时前
oracle:“not all variables bound”
数据库·oracle
数据库百宝箱6 小时前
Oracle RMAN Image Copy 本地恢复
数据库·oracle
轻刀快马6 小时前
Redis 架构进阶:全景解析 RDB、AOF 与混合持久化机制
redis
梦梦代码精7 小时前
2026年PHP开源商城系统实测对比:架构、多商户、商用授权,谁才是真·省心?
vue.js·docker·架构·开源·代码规范
zuYM4g7Dp7 小时前
NoSql数据库设计心得
数据库·nosql
杨了个杨89828 小时前
Keepalived + Nginx + HAProxy 高可用架构部署实战案例
java·nginx·架构
56AI9 小时前
360 智语 AI 企业智能体平台深度评测:从 L4 蜂群架构到政企落地实战
人工智能·架构