Redis缓存知识问题( 三 )
SETNX , 是「SET if Not eXists」的缩写 , 也就是只有不存在的时候才设置 , 可以利用它来实现锁的效果 。
\"提前\"使用互斥锁(mutex key)
在value内部设置1个超时值(timeout1) timeout1比实际的memcache timeout(timeout2)小 。 当从cache读取到timeout1发现它已经过期时候 , 马上延长timeout1并重新设置到cache 。 然后再从数据库加载数据并设置到cache中 。
\"永远不过期:\"
从redis上看 , 确实没有设置过期时间 , 这就保证了 , 不会出现热点key过期问题 , 也就是“物理”不过期 。
从功能上看 , 如果不过期 , 那不就成静态的了吗?所以我们把过期时间存在key对应的value里 , 如果发现要过期了 , 通过一个后台的异步线程进行缓存的构建 , 也就是“逻辑”过期
资源保护:
采用netflix的hystrix , 可以做资源的隔离保护主线程池 , 如果把这个应用到缓存的构建也未尝不可 。
推荐阅读
- s6|金铲铲之战:S6双城传说如何才能快速上手?基础知识很关键
- edg战队|《英雄联盟》全球总决赛冷知识:S11冠军EDG输了八个小局
- edg战队|S11世界赛EDG夺冠后,热点知识分享:Meiko成为LPL唯一大满贯选手
- 我的世界|我的世界:萌新必备“冷知识”,看似废物的钟,却是单冰道船必备
- fate grand order|FGO角色名字大改,都按照历史知识命名,没有偏离原型设定
- gt赛车7|三国杀:有关陆抗的一些冷门知识
- 剑网3|剑网三冷知识
- 冷知识|我的世界:无聊的冷知识,史蒂夫跌落高度的极限,猪灵幼崽长不大
- |大飞说文玩:猴头手串“凤羽”小知识讲解,喜欢的朋友可以看看
- 哈利·波特|梗知识:伟奶生,谜一大