![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Redis
念兰
这个作者很懒,什么都没留下…
展开
-
Redis中如果有大量的Key需要设置同一过期时间需要注意什么?
如果大量的key过期时间设置的太过集中,到过期的那个时间点redis可能会出现短暂的卡顿现象,一般需要在时间上加个随机值,使得过期时间分散一些原创 2021-11-23 12:30:03 · 1661 阅读 · 0 评论 -
Redis回收进程工作流程
当一个客户端运行了新的命令,添加了新的数据,Redis检查内存使用情况,如果大于max memory的限制,则根据设定好的策略进行回收。我们不断的穿越内存限制的边界,通过不断达到边界然后不断的回收并回收到边界以下。如果一个命令的结果导致大量内存被使用,不用多久内存限制就会被这个内存使用量超越...原创 2021-11-23 12:27:44 · 820 阅读 · 0 评论 -
Redis内存使用情况降低的办法
如果使用的是32位的Redis实例,可以好好利用Hash,list,sorted set,set等集合类型数据,因为通常情况下很多小的key- value可以用更紧凑的方式存放原创 2021-11-23 12:23:18 · 559 阅读 · 0 评论 -
Redis哈希槽的概念
Redis集群没有使用一致性hash,而是引入了哈希槽的概念,Redis集群有16384个哈希槽,每个key通过CRC16校验后对16384取模来决定放到哪个槽,集群的每一个节点负责一部分的hash槽原创 2021-11-23 12:20:14 · 310 阅读 · 0 评论 -
Redis的回收策略(淘汰机制)
volatile-lru:从已经设置过期时间的数据集中挑选最少使用的数据淘汰volatile-ttl:从已经设置过期时间的数据集中挑选将要过期的数据淘汰volatile- random:从已经设置过期的数据集中任意选择数据淘汰allkeys-lru:从数据集中挑选最少使用的数据淘汰allkeys- random:从数据集中任意选择数据淘汰no-enviction(驱逐):禁止驱逐数据这里的6种机制,volatile和allkeys规定了是已设置过期时间的数据集淘汰数据还是从全部数原创 2021-11-23 12:12:59 · 860 阅读 · 0 评论 -
Redis分布式锁
Redis分布式锁是利用setNx方法和SetEx方法向redis中写一个字符串,如果redis本身不存在这个数据,setNx就能写入成功并且返回1,如果client拿到返回值结果1就表示他获得到了锁,执行业务逻辑完毕后删除锁,如果没有写入成功redis就会返回0,如果拿到0就表示没有获得到锁,需要自旋去进行抢锁以上方式存在的问题1、不能防止死锁2、有可能自己删除掉了别人的锁3、存在一个续期逻辑4、公平性问题解决问题1的解决:给redis设置key的时候添加一个原子性的加锁原创 2021-11-21 10:50:59 · 716 阅读 · 0 评论 -
Redis分布式缓存
单点Redis的问题数据丢失问题:Redis是内存存储,服务器重启可能会丢失数据解决方案:实现Redis持久化并发能力问题:单节点Redis无法满足如同特别高的高并发场景,如双11活动解决方案:搭建主从集群,实现读写分离故障修复问题:如果Redis宕机,则服务不可用,需要一种自动的故障恢复手段解决方案:利用Redis哨兵模式,实现健康检测和自动恢复存储能力问题:Redis基于内存,单节点能力存储的数据解决方案啊:搭建分片集群,利用插槽机制实现动态扩容Red原创 2021-11-02 12:45:45 · 196 阅读 · 0 评论