Redis学习之热点key重建
在Redis的生产环境中,大量客户端连接请求某一个key,但都需要从DB中获取数据,来回写数据库,如下图:
造成的问题:
大量的线程请求数据库,造成数据库压力,还有就是请求会变慢。
解决办法:
在缓存层面做一个互斥锁,达到只有单个线程来更新数据的目的,但是响应还是很慢,只是db压力减轻
还可能因为操作不当而造成线程死锁问题。
(2)
key永不过期策略:
热点key不设置过期时间,但是存在一个逻辑过期时间,逻辑过期时间保存在key相应 的value中
若发现逻辑过期时间到期,则返回老值,异步更新value值,存在的缺点会导致数据的短暂不一致。