redis缓存命中率如何计算
/home/pubsrv/redis-2.8.12/src/redis-cli -p 6379 -h 192.168.11.13 -a ZTZmZDc4ODAwMjMx
192.168.11.14:6379> info
缓存命中率 = keyspace_hits / (keyspace_hits + keyspace_misses)
影响缓存命中率的因素
1. 业务场景
缓存适合“读多写少”的业务场景,反之,使用缓存的意义不大,命中率会很低。缓存时间越长,命中率会越高。时效性要求越低,就越适合缓存。
2. 更新策略
缓存的粒度越小,命中率会越高。举个实际的例子说明:
当缓存单个对象的时候(例如:单个用户信息),只有当该对象对应的数据发生变化时,我们才需要更新缓存或者让移除缓存。而当缓存一个集合的时候(例如:所有用户数据),其中任何一个对象对应的数据发生变化时,都需要更新或移除缓存。2.
3. 清理策略
对于持续运行的服务器来说, 服务器需要定期对自身的资源和状态进行必要的检查和整理,有三种不同的删除策略,立即删除会短时间内占用大量cpu,惰性删除会在一段时间内浪费内存,所以定时删除是一个折中的办法。
(1)立即清理。在设置键的过期时间时,创建一个回调事件,当过期时间达到时,由时间处理器自动执行键的删除操作。
(2)惰性清理。键过期了就过期了,不管。当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key
(3)定期清理。每隔一段时间,对expires字典进行检查,删除里面的过期键。
4. 缓存容量
缓存的容量有限,则容易引起缓存失效和被淘汰。
5. 缓存故障
缓存节点故障,也会引起缓存失效,业内比较典型的做法就是通过一致性Hash算法,或者通过节点冗余的方式。
来源:CSDN
作者:Leticia的博客
链接:https://blog.csdn.net/weixin_40213018/article/details/90765077