`SETEX` 命令用于在 Redis 中设置一个键值对,并指定该键的过期时间(以秒为单位)。如果键已经存在,`SETEX` 命令将会替换旧的值。以下是 `SETEX` 命令的基本语法和示例:
语法
```plaintext
SETEX key seconds value
```
`key`: 要设置的键的名称。
`seconds`: 键过期前的秒数。
`value`: 要与键关联的值。
示例
设置一个键值对,并设置其过期时间为 60 秒
```plaintext
SETEX mykey 60 "Hello, Redis!"
```
在这个例子中,键 `mykey` 的值被设置为 `"Hello, Redis!"`,并且设置了一个过期时间为 60 秒。60 秒后,该键值对将自动从 Redis 中删除。
在 Jedis 中使用 SETEX 命令
```java
import redis.clients.jedis.Jedis;
public class RedisSetEXExample {
public static void main(String[] args) {
// 创建 Jedis 对象
Jedis jedis = new Jedis("localhost", 6379);
// 要设置的键和值
String key = "myKey";
String value = "myValue";
int expireTime = 60; // 过期时间,单位:秒
// 使用 SETEX 命令设置值和过期时间
String result = jedis.setex(key, expireTime, value);
// 输出结果
if ("OK".equals(result)) {
System.out.println("键设置成功: " + key + " = " + value + ", 过期时间: " + expireTime + "秒");
} else {
System.out.println("键设置失败: " + key);
}
}
}
```
在 Redis 命令行界面 (CLI) 中使用 SETEX 命令
```plaintext
127.0.0.1:6379> SETEX mykey 60 "Hello, Redis!"
OK
127.0.0.1:6379> TTL mykey
55
127.0.0.1:6379> GET mykey
"Hello, Redis!"
```
在这个例子中,首先将键 `mykey` 设置为 60 秒的过期时间和值 `"Hello, Redis!"`。CLI 以 `OK` 作为响应,表示已成功设置键值对。然后,使用 `TTL` 命令检查 `mykey` 的剩余生存时间,返回 55 秒。最后,使用 `GET` 命令检索与 `mykey` 相关联的值,该值返回 `"Hello, Redis!"`。
注意事项
`SETEX` 命令自 Redis 2.0.0 版本起可用。
`SETEX` 命令的时间复杂度为 O(1),表示该操作是常数时间复杂度。
如果 `seconds` 参数不符合要求(例如设置为负数或浮点数),`SETEX` 命令将返回一个错误。
通过以上示例和说明,您应该能够了解如何在 Redis 中使用 `SETEX` 命令来设置键值对及其过期时间。