设为首页 收藏本站
查看: 918|回复: 0

[经验分享] redis key 过期时间

[复制链接]

尚未签到

发表于 2015-7-22 09:10:15 | 显示全部楼层 |阅读模式
redis key 过期时间:
  EXPIRE key 100
  设置了过期时间,100秒后,key将自动被删除。
  过期时间删除的方法有三种:
  1、删除这个key,使用del command
  2、用set or getset 命令会将key的expiration清空,事实上set和getset命令是替换了key对应的value,所以key的过期时间也就不复存在。所以,需要注意的是:incr,LPUSH,HSET命令是不会改变key的过期时间的。原来是多久,这三条命令执行完之后还是多久。
  3、使用persist命令清楚key的过期时间。
  rename命令是将keyA变为keyB,无论keyB是否已经存在,keyA的过期时间都会被keyB继承过去。
  
刷新过期时间:
  多次调用expire key 100 可以刷新key的过期时间。
  返回值:
  返回值:1代表过期时间被设置。
  返回值:0代表key不存在或者timeout不能被设置。
  
  redis如何清除过期keys:
  redis有两种方式清除过期keys:主动方式,和被动方式。
  1、主动方式:当client访问某一个key,redis会check key是否过期,如果已经过期,则被删除。
  2、被动方式:不是所有的key都能被client访问。redis有一套默认的机制,redis每秒会进行10次以下动作:
  a、随机从keys中挑选100个key,这100key是关联了过期时间的key。
  b、删除已经过期的key。
  c、如果删除的key超过25个,那么重复步骤a。
  这是一个不是很严格的算法。不过可以基本保证过期的keys小于总数的25%。其实这是一种近似算法。随机选数,检查并删除。随机选key就保证了大致概率,结果只能是近似的。
  这意味着:在任意时间点,那些占用内存并已经过期的keys的数量最多等于每秒写入数量的四分之一。
  
  key 过期如何解决主从节点同步以及AOF文件:
  为了保证结果一致性,当key过期时,从节点会等待主节点的删除命令,从节点不会自己删除已经过期的key,主节点会进行集权控制,保证一致性。不过假如意外掉电,或者节点当机不知道会是什么情况。会不会导致主节点key已经删除,而从节点没有删除的情况。官方网站也没有一个明确的解释。
  
  expire的持久化:
  redis key的过期时间很有意思:以unix的时间戳存储。也就是说,在redis server不活动的情况下,key的过期时间仍然是有效的。这样会带来什么情况呢,比如数据库文件RDB从一台2013年11月27日00:00:00的服务器上移动到2013年11月30日00:00:00的服务器上,重启redis server,那么RDB中所有过期时间

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-89322-1-1.html 上篇帖子: redis的php类-使用socket通信 下篇帖子: Redis的安装与配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表