• 技术文章 >数据库 >Redis

    redis怎么删数据

    silencementsilencement2019-06-06 15:00:43原创3196

    Redis常用的删除策略有以下三种:

    1.被动删除(惰性删除):当读/写一个已经过期的Key时,会触发惰性删除策略,直接删除掉这个Key;

    2.主动删除(定期删除):Redis会定期巡检,来清理过期Key;

    3.当内存达到maxmemory配置时候,会触发Key的删除操作;

    主动删除

    在 Redis 中,常规操作由 redis.c/serverCron 实现,它主要执行以下操作:

    1.更新服务器的各类统计信息,比如时间、内存占用、数据库占用情况等。

    2.清理数据库中的过期键值对。

    3.对不合理的数据库进行大小调整。

    4.关闭和清理连接失效的客户端。

    5.尝试进行 AOF 或 RDB 持久化操作。

    6.如果服务器是主节点的话,对附属节点进行定期同步。

    如果处于集群模式的话,对集群进行定期同步和连接测试。

    Redis 将 serverCron 作为时间事件来运行,从而确保它每隔一段时间就会自动运行一次, 又因为 serverCron 需要在 Redis 服务器运行期间一直定期运行, 所以它是一个循环时间事件:serverCron 会一直定期执行,直到服务器关闭为止。

    总结

    如果Redis中每天过期大量Key(比如几千万),那么必须得考虑过期Key的清理:

    增加Redis主动清理的频率(通过调大hz参数)

    手动清理过期Key,最简单的方法是进行scan操作,scan操作会触发第一种被动删除,scan操作时候别忘了加count;

    dbsize命令返回的Key数量,包含了过期Key

    randomkey命令返回的Key,不包含过期Key

    scan命令返回的Key,包含过期Key

    info命令返回的# Keyspace

    db6:keys=1034937352,expires=994731489,avg_ttl=507838502

    keys对应的Key数量等同于dbsize

    expires指的是设置了过期时间的Key数量

    avg_ttl指设置了过期时间的Key的平均过期时间(单位:毫秒)

    以上就是redis怎么删数据的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:redis删数据
    上一篇:MongoDB和Redis的区别是什么 下一篇:redis两种持久化方式的区别是什么

    相关文章推荐

    • redis怎么加锁• redis的数据存储在哪里• redis使用要注意什么

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网