我需要在 Redis 中创建一个集合:
redis> SADD myset "Hello"
(integer) 1
redis> SADD myset "World"
(integer) 1
redis> SADD myset "World"
(integer) 0
redis> SMEMBERS myset
1) "World"
2) "Hello"
Run Code Online (Sandbox Code Playgroud)
但我需要为密钥设置过期时间myset。
换句话说,我需要一种命令expire sadd myset...(例如用于字符串值的 SETEX)。
有没有办法让 Redis 服务器每次请求都执行这些命令?
没有内置命令可以执行此操作。你可以做的是;使用交易。正如文档中所述;
事务中的所有命令都被序列化并按顺序执行。绝不会发生在 Redis 事务执行过程中处理另一个客户端发出的请求的情况。这保证了命令作为单个独立操作执行。
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> SADD mynewset a b c d e f g
QUEUED
127.0.0.1:6379> SADD mynewset f g h j k l
QUEUED
127.0.0.1:6379> EXPIRE mynewset 86400
QUEUED
127.0.0.1:6379> EXEC
1) (integer) 7
2) (integer) 4
3) (integer) 1
127.0.0.1:6379> TTL mynewset
(integer) 86394
127.0.0.1:6379>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11483 次 |
| 最近记录: |