redis基本使用及哨兵和分布式
很多系统,除了关系型数据库,还可以见到redis。为什么呢?大概是用redis存储分布式会话及使用分布式锁,纯粹地做为缓存的还真不多见。
学习和进阶redis,推荐官方文档。
redis的数据结构我们都比较熟悉,但也有一些比较怪的地方,比如String类型,其本质是字节序列,可以支持int,float的基本计算。而其他的,都可以称之为组合模式。
在redis的部署架构方面,官方提供了三种:redis-sentinel,redis-cluster, replica。
其演化过程是replica-->sentinel-->cluster,复杂度和好用逐次提升。
replica(主从)架构实现了读写分离,提升了可用性和高并发。但主从模式下,主机挂了,需要手动切换到从机,不够自动,不方便生产环境使用。这时sentinel就登场了,
哨兵模式的高可用原理:哨兵发送命令,等待Master主节点响应,从而监控主节点的运行,当主节点出现故障时,由Redis哨兵自动完成故障发现和转移,并通知Redis客户端,
实现高可用性。在哨兵模式中,读写仍是分离的。springboot集成哨兵模式非常简单,配置哨兵选项,此时,redisclient不是直接连接一个redisserver,而是通过哨兵选择。
在集群模式中,主要就是sharding,hash slot插槽的概念,做水平扩展,分担并发压力和存储。读写都在master节点,slave节点作为候补节点。
为什么说redis-cluster是AP的,在于主从复制时,是async模式,master挂掉后,salve上位,可能会丢失部分数据
redis还有一个问题, 大key的查找,key的过期回收策略。
记录一个在开发中产生的问题,redis连接未设置超时,导每次启动都新建连接,最后超过最大连接数400,导致服务起不来,最后设置超时时间,完美解决!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义