redis缓存命中率

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

redis缓存命中率_第1张图片

缓存命中率 = keyspace_hits / (keyspace_hits + keyspace_misses)

 

影响缓存命中率的因素

1. 业务场景

缓存适合“读多写少”的业务场景,反之,使用缓存的意义不大,命中率会很低。缓存时间越长,命中率会越高。时效性要求越低,就越适合缓存。

2. 更新策略

缓存的粒度越小,命中率会越高。举个实际的例子说明:

当缓存单个对象的时候(例如:单个用户信息),只有当该对象对应的数据发生变化时,我们才需要更新缓存或者让移除缓存。而当缓存一个集合的时候(例如:所有用户数据),其中任何一个对象对应的数据发生变化时,都需要更新或移除缓存。2.

3. 清理策略

对于持续运行的服务器来说, 服务器需要定期对自身的资源和状态进行必要的检查和整理,有三种不同的删除策略,立即删除会短时间内占用大量cpu,惰性删除会在一段时间内浪费内存,所以定时删除是一个折中的办法。
(1)立即清理。在设置键的过期时间时,创建一个回调事件,当过期时间达到时,由时间处理器自动执行键的删除操作。

(2)惰性清理。键过期了就过期了,不管。当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key

(3)定期清理。每隔一段时间,对expires字典进行检查,删除里面的过期键。

4. 缓存容量

缓存的容量有限,则容易引起缓存失效和被淘汰。

5. 缓存故障

缓存节点故障,也会引起缓存失效,业内比较典型的做法就是通过一致性Hash算法,或者通过节点冗余的方式。

 

 

你可能感兴趣的:(存储)