php Redis set 设定有效时间
时间: 2023-07-20 20:17:17 浏览: 70
在 Redis 中,可以使用 SETEX 命令来设置一个具有过期时间的键值对。在 PHP 中,可以使用 Redis 扩展提供的 setex 方法来实现这个功能。
以下是使用 setex 方法设置 Redis 键值对过期时间的示例代码:
```php
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
// 设置键值对,并将其过期时间设置为 60 秒
$redis->setex('key', 60, 'value');
```
以上代码中,第一个参数是键名,第二个参数是键值,第三个参数是过期时间,单位为秒。当键值对的过期时间到达后,Redis 会自动将其删除。
需要注意的是,setex 方法会覆盖原有的键值对,如果需要保留原有的键值对,可以先使用 GET 命令获取键值对,然后再使用 SETEX 命令重新设置键值对并设置过期时间。
相关问题
php redis 让过期时间为每周日
可以使用 Redis 的 EXPIREAT 命令来设置每周日过期时间。EXPIREAT 接受一个 UNIX 时间戳作为参数,表示这个键应该在什么时候过期。
在 PHP 中,可以使用 strtotime() 函数来计算下一个周日的 UNIX 时间戳。
例如:
```
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
// 计算下一个周日的 UNIX 时间戳
$next_sunday = strtotime('next sunday');
// 设置 key 的过期时间
$redis->set('key', 'value');
$redis->expireat('key', $next_sunday);
```
这样就可以设置key 的过期时间为下一个周日了。
redis+php封装个过期时间的类
以下是一个基本的 Redis PHP 封装类,它可以设置过期时间:
```php
class RedisCache {
private $redis;
public function __construct() {
$this->redis = new Redis();
$this->redis->connect('127.0.0.1', 6379);
}
public function set($key, $value, $expiry = 0) {
$this->redis->set($key, $value);
if ($expiry > 0) {
$this->redis->expire($key, $expiry);
}
}
public function get($key) {
return $this->redis->get($key);
}
public function delete($key) {
$this->redis->del($key);
}
}
```
在上述代码中,我们使用 Redis 类的 set() 方法来设置键值对。如果提供了过期时间,则使用 Redis 的 expire() 方法设置过期时间。get() 方法用于获取键的值,delete() 方法用于删除键。使用这个 RedisCache 类,可以在 Redis 中存储和检索数据,并在一定时间后自动删除它们。