暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

redis键过期时间的应用

染卷 2020-04-22
647
  1. expire 设置生存时间(单位/秒)

  2. pexpire设置生存时间(单位/毫秒)

  3. ttl/pttl 查看键的剩余生存时间

  4. persist 取消生存时间

  5. expireat [key] unix时间戳1351858600

  6. pexpireat [key] unix时间戳(毫秒)1351858700000


php中设置某个键的有效时间

  1. #设置某个键的有效时间(单位秒)

  2. $redis->expire('key',30);

  3. #查看生存时间

  4. echo $redis->ttl('key');

  5. #设置某个键值在当天有效

  6. #如果是hash数据结构的话,针对的是key,而不是hash结构里面的field,如果这样设置,整个hash的key也会失效的

  7. $redis->set($key,$value);

  8. $expireTime = mktime(23, 59, 59, date("m"), date("d"), date("Y"));

  9.        //设置键的过期时间

  10. $redis->expireAt($key, $expireTime);


php单位时间内限制次数

  1. $ip = '8.8.8.8';

  2. //这个key记录三方标识

  3. $key = "request_limit_".$ip;

  4. //限制请求时间内

  5. $time = 3;

  6. //限制次数为100

  7. $limit = 100;

  8. $check = $redis->ttl($key); //-1,未设置过期, -2 不存在 ; >1 超过1秒

  9. if($check > 0){//0.1进来的,进来后过期又重新设置,成永久key,ttl判断为-1

  10.     $count = $redis->incr($key);

  11.     if($count > $limit){

  12.         exit('您在{$time}秒内已经请求超过最大次数,请稍后重试');

  13.     }

  14. }else{

  15.     $redis->setex($key,$time,1);//过期重新设置该值

  16. }


在php中key到期后不会自动删除,除非再次查key或系统定期清理( 每次过期key清理的时间不超过CPU时间的25% ,这是一个基于概率的简单算法,基本的假设是抽出的样本能够代表整个key空间,redis持续清理过期的数据直至将要过期的key的百分比降到了25%以下)

在php中redis的用途

基于互联网精神,在注明出处的前提下本站文章可自由转载!

本文链接:https://ranjuan.cn/redis-expire-time/


文章转载自染卷,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论