您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

php redis任何设置时间

2024/3/22 16:23:36发布22次查看
php redis设置时间的方法:1、取消生存时间,将键的生存时间设为永久,是persist,代码为【persist session:captcha】;2、看一个键的生存时间用ttl命令,代码为【ttl session:captcha】。
php redis设置时间的方法:
redis对键提供生存时间,在不指定生存时间时,生存时间是永久。时间到期后redis会自动删除这个键。可以用expire命令,时间单位时秒,如果一个键是被设为有限的生存时间,那么在set key进行重新赋值的时候会被再次设为永久:
set session:captcha sd2aexpire session:captcha 600
取消生存时间,将键的生存时间设为永久,是persist:
persist session:captcha
查看一个键的生存时间用ttl命令,-1表示永久或者以及到期被删除。
ttl session:captcha
在redis的incr,lpush,hset,zrem等命令时不会改变生存时间的。
想要精确到毫米来控制时间,就需要pexpire即可,使用pttl查看剩余时间。
如果想要给定一个到期的时间而不是多少秒后到期呢?就需要expireat和pexpireat。expireat的参数是到期时的时间戳(秒),pexpireat的参数是到期时间是时间戳(毫秒)
set session:captcha sd2aexpireat session:captcha 1399902009pexpireat session:captcha 1399902009000
应用场景一:访问频率限制:我们限定每个用户1分钟只能浏览10个页面。伪代码如下:
$isexists = exists limit:user1:192.168.1.2if($isexists){ $num = incr limit:user1:192.168.1.2 if($num > 10){ print '超过限制' exit }}else{ multi incr limit:user1:192.168.1.2 expire limit:user1:192.168.1.2 60 exec}
我们用了事务的原因是因为,加入在执行了incr limit:user1:192.168.1.2之后,在执行expire limit:user1:192.168.1.2 60之前,客户端被关闭了。那么这个键和值就会被持久化保存。且该id终身只能访问10次了。这就太糟糕了。
想了解更多编程学习,敬请关注php培训栏目!
以上就是php redis任何设置时间的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product