![](https://img-blog.csdnimg.cn/20190927151053287.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
缓存
文章平均质量分 94
redis、分布式缓存、二级缓存
懒鸟一枚
算是总结、沉淀吧……
展开
-
Redis 原理缓存过期、一致性hash、雪崩、穿透、并发、布隆、缓存更新策略、缓存数据库一致性
redis的过期策略可以通过配置文件进行配置redis会把设置了过期时间的key放在单独的字典中,定时遍历来删除到期的key。1).每100ms从过期字典中 随机挑选20个,把其中过期的key删除;2).如果过期的key占比超过1/4,重复步骤1为了保证不会循环过度,导致卡顿,扫描时间上限默认不超过25ms。根据以上原理,系统中应避免大量的key同时过期,给要过期的key设置一个随机范围。过期的key并不一定会马上删除,还会占用着内存。 当你真正查询这个key时,redis会检查一下,这个设置了过期时原创 2023-10-29 17:23:14 · 1350 阅读 · 3 评论 -
redis-集群切片
每个数据存储进来的时候,要根据hash算法,进行算值取余,存入到对应的机器中。取数据的时候,用同样的hash算法对key进行计算,即可取出数据。上面说的Hash链,只经过了1次hash,即把key hash到对应的机器编号。而Hash环有2次Hash:(1)把所有机器编号hash到这个环上(2)把key也hash到这个环上。然后在这个环上进行匹配,看这个key和哪台机器匹配。这样,每个机器负责对应段上的数据。原创 2023-10-29 16:33:40 · 217 阅读 · 0 评论 -
redis原理 主从同步和哨兵集群
有三种模式:全量复制、基于长连接的命令传播,以及增量复制。全量复制虽然耗时,但是对于从库来说,如果是第一次同步,全量复制是无法避免的,所以,我给你一个小建议:一个 Redis 实例的数据库不要太大,一个实例大小在几 GB 级别比较合适,这样可以减少 RDB 文件生成、传输和重新加载的开销。另外,为了避免多个从库同时和主库进行全量复制,给主库过大的同步压力,我们也可以采用“主 - 从 - 从”这一级联模式,来缓解主库的压力。原创 2023-10-29 15:57:42 · 289 阅读 · 0 评论 -
Redis原理-IO模型和持久化
而且,AOF 日志也只用记录两次快照间的操作,也就是说,不需要记录所有操作了,因此,就不会出现文件过大的情况了,也可以避免重写开销。不过,AOF 日志正好相反,它是写后日志,“写后”的意思是 Redis 是先执行命令,把数据写入内存,然后才记录日志,Redis 使用写后日志这一方式的一大好处是,可以避免出现记录错误命令的情况。三是,如果发生宕机,AOF 中记录的命令要一个个被重新执行,用于故障恢复,如果日志文件太大,整个恢复过程就会非常缓慢,这就会影响到 Redis 的正常使用。原创 2023-10-29 15:32:51 · 276 阅读 · 0 评论 -
Redisson的看门狗策略——保障Redis数据安全与稳定的机制
看门狗策略是一种自动检测并处理过期键的机制。它基于Redis的“WATCH”命令实现,通过在Redisson库中创建一个监视器(Watch Dog)来监控Redis服务器上的指定键。当应用程序使用Redisson库监视一个键时,Watch Dog会向Redis服务器发送一个“WATCH”命令,并在服务器上对该键进行监视。如果另一个客户端尝试修改被监视的键,Redis服务器将返回一个错误。这个错误会被Watch Dog捕获并处理。原创 2023-10-28 18:34:04 · 1336 阅读 · 0 评论 -
分布式锁-Redis红锁解决方案
红锁本质上就是使用多个Redis做锁。例如有5个Redis,一次锁的获取,会对每个请求都获取一遍,如果获取锁成功的数量超过一半(2.5),则获取锁成功,反之失败;释放锁也需要对每个Redis释放基于Redis的Redisson红锁RedissonRedLock对象实现了Redlock介绍的加锁算法。该对象也可以用来将多个RLock对象关联为一个红锁,每个RLock对象实例可以来自于不同的Redisson实例。// 同时加锁:lock1 lock2 lock3。原创 2023-10-28 16:35:19 · 2097 阅读 · 2 评论