php操作redis和memcache过期时间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php操作redis和memcache过期时间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1896字,纯文字阅读大概需要3分钟。
内容图文
php-redis 设置过期时间setTimeOut 命令行expire
redis过期时间
redis术语里面,把设置了expire time的key 叫做:volatile keys。 意思就是不稳定的key。
没有设置过期时间的也就是永久存储
set:set('key','value')将值 value 关联到 key setTimeOut:setTimeout('x', 3);设置过期时间 setex:setex('key', 3600, 'value')带生存时间的写入值
这个命令类似于以下两个命令:
SET key value setTimeOut key seconds # 设置生存时间
不同之处是, SETEX 是一个原子性(atomic)操作,关联值和设置生存时间两个动作会在同一时间内完成,该命令在 Redis 用作缓存时,非常实用。
Memcache过期时间
telnet命令格式
<command name> <key> <flags> <exptime> <bytes>\r\n <data block>\r\n
php命令格式
add ( string $key , mixed $var [, int $flag [, int $expire ]] )
$key :将要存储的键值。
$var :存储的值,字符型和整型会按原值保存,其他类型自动序列化以后保存。
$flag:是否用MEMCACHE_COMPRESSED来压缩存储的值,true表示压缩,false表示不压缩。
$expire:存储值的过期时间,如果为0表示永久有效,但也会30后失效,过期时间可以是多少秒后过期,也可以是什么时候过期
memcache是在内存中的,所以过了有效期,数据当然是不会再有了。
memcache 的过期数据惰性删除
当某个值过期后,并没有从内存删除, 因此,stats 统计时, curr_item 有其信息。 当某个新值去占用他的位置时,当成空chunk 来占用。 当get 值时,判断是否过期,如果过期,返回空,并且清空,curr_item 就减少了。即这个过期,只是让用户看不到这个数据而已,并没有在过期的瞬间立即从内存删除。这个称为惰性失效。好处是节省了cpu 时间和检测的成本。
redis 1.有有效期
也是运行在内存中的,虽然redis可以做持久化,aof或者快照。
在访问key的时候判定key是否过期,如果过期,则进行过期处理。其次,每秒对volatile keys 进行抽样测试,如果有过期键,那么对所有过期key进行处理。
redis过期处理机制见http://my.oschina.net/u/1466553/blog/332830,写的很详细了。
2.永久存储,但是没有做持久化时,关闭的时候数据就会丢失或者
memcache与redis LRU删除机制
原理: 当某个单元被请求时,维护一个计数器,通过计数器来判断最近谁最少被使用。
注: 即使某个key 是设置的永久有效期,也一样会被踢出来! 即–永久数据被踢现象。
内容总结
以上是互联网集市为您收集整理的php操作redis和memcache过期时间全部内容,希望文章能够帮你解决php操作redis和memcache过期时间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。