当前位置:   article > 正文

redis集合数据过期_Redis 对过期数据的处理

redis 集合 每条过期

Redis 对过期数据的处理

在 redis 中,对于已经过期的数据,Redis 采用两种策略来处理这些数据,分别是惰性删除和定期删除

惰性删除

惰性删除不会去主动删除数据,而是在访问数据的时候,再检查当前键值是否过期,如果过期则执行删除并返回 null 给客户端,如果没有过期则返回正常信息给客户端。

它的优点是简单,不需要对过期的数据做额外的处理,只有在每次访问的时候才会检查键值是否过期,缺点是删除过期键不及时,造成了一定的空间浪费。

源码

robj *lookupKeyReadWithFlags(redisDb *db, robj *key, int flags) {

robj *val;

if (expireIfNeeded(db,key) == 1) {

/* Key expired. If we are in the context of a master, expireIfNeeded()

* returns 0 only when the key does not exist at all, so it's safe

* to return NULL ASAP. */

if (server.masterhost == NULL) {

server.stat_keyspace_misses++;

notifyKeyspaceEvent(NOTIFY_KEY_MISS, "keymiss", key, db->id);

return NULL;

}

/* However if we are in the cont

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/从前慢现在也慢/article/detail/592465
推荐阅读
相关标签
  

闽ICP备14008679号