redis
My heart is toward you
这个作者很懒,什么都没留下…
展开
-
Redis主从复制的核心原理
3.服务器运行ID(runid):每个Redis节点,都有其运行ID,运行ID由节点在启动时自动生成,主节点会将自己的运行ID发送给从节点,从节点会将主节点的运行ID存起来。(1)如果从节点保存的runid与主节点现在的runid相同,说明主节点之前同步过,主节点会继续尝试使用部分复制(到底能不能复制还要看offset和复制积压缓冲区的情况)。(2)如果从节点保存的runid与主节点现在的runid不同,说明从节点在断线前同步的Redis节点并不是当前的主节点,只能进行全量复制。原创 2022-10-10 23:06:34 · 256 阅读 · 0 评论 -
Java实现布隆过滤器
在查redis缓存之前往往先经过布隆过滤器,达到防止缓存穿透的作用。原创 2022-10-10 23:05:38 · 78 阅读 · 0 评论 -
Redis有哪些数据结构
1.字符串:可以用来做最简单的数据缓存,可以缓存某个简单的字符串,也可以缓存某个json格式的字符串,Redis分布式锁的实现就利用了这种数据结构,还包括可以实现计数器、Session共享、分布式ID。3.列表:Redis的列表通过命令的组合,即可以当作栈,又可以当作队列来使用,可以用来缓存类似微信公众号,微博等消息流数据。原创 2022-10-09 22:35:43 · 243 阅读 · 0 评论 -
redis常见的缓存淘汰算法
LFU(Least Frequently Used,最不经常使用),在一段时间内,缓存数据被使用次数最少的会被淘汰。LRU(Least Recently Used,最近最少使用),根据最近被使用的时间,离当前最远的数据优先被淘汰。FIFO(First In First Out,先进先出),根据缓存被存储的时间,离当前最远的数据优先被淘汰。原创 2022-10-09 22:34:51 · 120 阅读 · 0 评论 -
redis实现分布式锁
在redis集群主从的这种搭建中,会带来另外一个问题:说白了还是CAP原则,分布式可用性和一致性不可能同时满足:假如client1对redis主获取了锁,然后异步复制给了redis从,如果这时redis主宕机,redis从变为主,就会导致client2来加锁的时候,成功加锁,则破坏了分布式锁的原则,导致多个线程对一个分布式锁完成了加锁,脏数据就会由此产生。客户端加锁默认生存时间30s,一旦加锁成功会有一个dog线程,10s检查一次如果客户端还持有锁,会不断延长锁key的生存时间。原创 2022-10-09 16:19:48 · 154 阅读 · 0 评论