博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php redis 清空数据库,redis怎么删数据
阅读量:5940 次
发布时间:2019-06-19

本文共 850 字,大约阅读时间需要 2 分钟。

dfa3d1f12e7531c5e69f5fc0b9fe283d.png

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的平均过期时间(单位:毫秒)

转载地址:http://khltx.baihongyu.com/

你可能感兴趣的文章
springMVC---级联属性
查看>>
get和post区别
查看>>
crontab执行shell脚本日志中出现乱码
查看>>
cmd.exe启动参数说明
查看>>
《随笔记录》20170310
查看>>
网站分析系统
查看>>
从零开始来看一下Java泛型的设计
查看>>
Shell编程基础
查看>>
Shell之Sed常用用法
查看>>
3.1
查看>>
校验表单如何摆脱 if else ?
查看>>
JS敏感信息泄露:不容忽视的WEB漏洞
查看>>
让我们荡起双桨,Android 小船波浪动画
查看>>
分布式memcached服务器代理magent安装配置(CentOS6.6)
查看>>
Create Volume 操作(Part III) - 每天5分钟玩转 OpenStack(52)
查看>>
tomcat 8.0虚拟机配置文档
查看>>
pxc群集搭建
查看>>
JS中加载cssText延时
查看>>
常用的脚本编程知识点
查看>>
XILINX_zynq_详解(6)
查看>>