我已经安装了Redis,并且可以使用此库https://github.com/phpredis/phpredis从PHP访问它
我有一个排序时间序列。使用以下代码添加值。
$key = time();
$redis->zAdd('redisKey', $key, 'sm:1:26');
我想检索过去24小时添加的所有记录。但是,以下代码将返回此Set中的所有记录。
$redis->zRange('redisKey', 0, -1, ['withscores' => TRUE]);
输出:
Array
(
[sm:1:26] => 1545858900
[sm:2:27] => 1545945300
[sm:4:28] => 1546031700
[sm:3:29] => 1546118100
[sm:5:30] => 1547031700
)
你能指导我吗?
答案 0 :(得分:0)
您需要使用zRangeByScore。它返回其键在指定范围之间的所有记录。因此,您需要计算范围:
$to = time();
$from = strtotime('-24 hours');
$redis->zRangeByScore('redisKey', $from, $to, ['withscores' => TRUE]);
如果要获取所有比5天还早的记录,则可以将$ from参数指定为0。
$to = strtotime('-5 days);
$redis->zRangeByScore('redisKey', 0, $to, ['withscores' => TRUE]);