检索24小时前的记录

时间:2019-07-13 06:51:53

标签: php redis

我已经安装了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
)

你能指导我吗?

1 个答案:

答案 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]);