laravel redis 使用ttl 创建集合?

laravel redis creating a set with ttl?

所以我可以做一组

Redis::sadd('example',[1,4,6,1,])

我尝试了很多变体来创建一个 ttl 无效的集合:

Redis::sadd('example',100,[1,4,6,1,])
Redis::sadd('example',[1,4,6,1,],100)
Redis::saddex('example',100,[1,4,6,1,])
Redis::saddex('example',[1,4,6,1,],100)

作为额外的参考,如果你想检查一个 [sorted set] 键(在你的例子中,'example')是否存在,你可以执行 ff:

提案 1:(您的偏好)

$iTtlRedisKey = Redis::ttl('example');
if ($iTtlRedisKey <= 0) {
    Redis::sadd('example', [1,4,6,1]);
    Redis::expire('example', 30);
}

$aSortedExampleSets = Redis::smembers('example');
// array(3) { [0]=> string(1) "1" [1]=> string(1) "4" [2]=> string(1) "6" }

建议 2:使用 [exists] 方法

$bCheckRedisKey = Redis::exists('example');
if (boolval($bCheckRedisKey) !== true) {
    Redis::sadd('example', [1,4,6,1]);
    Redis::expire('example', 30);
}

$aSortedExampleSets = Redis::smembers('example');
// same results as well.