NoSQL之Redis集群(缓存加速)

redis工作模式:

单节点;

集群的方式:

主从模式(2.8之前)

解决的数据备份,读写分离,无法实现自动化故障转移;

无法对master扩容;

哨兵模式(2.8之后)

利用哨兵检测master的状态;

自动的故障转移;

无法对master扩容;

集群模式(3.0之后)

redis cluster

分片:

客户端

代理设备

服务器端

master只有一个slave

master故障-->slave

(ping-pong)

master有多个slave

选举,选出新的主;

slave广播(故障切换的认证请求),拉选票,让master投票;

master(故障转移的认证应答),投票给slave;

如果a-slave票数多,a成了master;

如果票数一样多,再选;

期望,半数以上;

对于集群服务器的数量建议为奇数台;

主从架构的优缺点

哨兵模式的优缺点

集群模式的优缺点

redis集群至少有三个master,而单个master至少对应一个slave;

将软件包拉到各个服务器中;开启同步会话;

解压:

cd到解压目录;开始编译;

编译后安装;指定安装目录;

命令优化;

安装redis;

然后搭建集群环境;

修改配置文件;

修改监听地址;

修改redis保持持久化的工作模式;

开启集群模式及其集群模式的配置文件;和超时时间;

将以下语句yes改成no;

插槽覆盖功能;

改到这里就修改完毕了,保存退出,重启一下redis;

然后取消同步会话功能;创建集群;

因为redis的特殊之处就在于去中心化的特性;

如果检查无误,就输入yes继续;

成功的提示页面;

此时就可以登录任意一个节点查看cluster的状态信息;

对于redis集群而言,任意一个节点的IP都可以作为登录的入口;

如何登录集群呢?

此时会发现,创建键值对,哈希运算后生成槽放置到集群的节点上;

这就是分布式存储;且查看提示符,会发现,会切换到其他主机上;

而查看的也是主机192.168.10.103的信息;

如何动态的扩缩容?

这里采用脚本的方式快速部署;

随意找一个节点进行添加;

但是此节点,写入的话不会分配给该节点;因为该节点没有槽;

第二种添加的语句;

要指定集群的任意一个节点的IP及端口;

但是这种添加的方法也没有槽位;

默认添加进来的新的节点都会以master的身份,添加进去;

如果想让添加的节点成为现有节点的slave;如何实现?

先加入到集群中,然后以新节点的IP登录到集群中,指定要作为哪个节点的从;

这时要指定master的ID;

此时,108就成为了107的slave;

重新分配槽位;

然后再登录进去,查看节点信息;

如何删除节点;即缩容;
先指定集群中的任意一个IP地址,再指定删除哪一个节点的ID;
会从集群中忘记该节点;FORGET

还会把该节点关闭掉;

删除一个从节点的时候,可以直接删掉,因为该节点没有分配槽位,但是删除一个主节点的话,会提示该节点不会空,即有槽位;

首先要把该节点数据库清空,然后重置一下该节点,再去移除该节点;

再把该节点删除掉;

但是删除了master节点,以往分配给该节点的槽位还存在,所以要重新分配一下槽位,给其他节点;

可以看出,会提醒无法重置槽位;

删除master节点会影响到集群的架构;

此时要同步集群的会话,清空数据库,然后重置;

重新创建集群;

但是针对该问题,有另外的解决方案,就是移动槽位,随即也会把数据移动走,再删除该节点就没影响了;

相关推荐
code2cat10 分钟前
【随笔】RAG语义缓存:问题很相似,答案就能直接复用吗
java·缓存·知识库·rag
小静AI工程实验室1 小时前
AI 应用缓存键怎么设计?租户、模型、提示词与索引版本的 7 项离线验证
缓存
北京地铁1号线1 小时前
后端开发:缓存(Cache)简介
后端·缓存·cache
李纲明2 小时前
WordPress 结账页一直转圈不跳支付:AJAX、缓存排除、支付回调和 REST 怎么逐层核
运维·ajax·缓存·wordpress·woocommerce·devdiy·结账
Flynt11 小时前
我把微信运动的排行榜和定点推送复刻了一遍:100万次步数更新只要4秒,坑在别处
redis·后端·性能优化
Song_RsHt16 小时前
Redis 与微服务,什么场景下无可替代
java·redis·后端·学习·微服务
GottdesKrieges19 小时前
Redis哨兵模式新建用户和修改口令
数据库·redis
程序猿编码20 小时前
纯 C++ 手写 LLM 推理引擎:分页 KV 缓存、连续批、多卡张量并行全部内置
c++·深度学习·缓存·大模型推理·自动微分·模型推理
code2cat20 小时前
【随笔】RAG检索缓存:复用证据之前,先把权限和版本放进缓存键
java·人工智能·缓存·知识库·rag
爱好曙光1 天前
Redis Cluster 槽迁移:MOVED 重定向与拓扑刷新实战
redis·cluster·性能调优·moved·槽迁移