gpt4 book ai didi

php - 使用分页过滤REDIS中的在线用户

转载 作者:IT王子 更新时间:2023-10-29 06:11:45 26 4
gpt4 key购买 nike

我正在开发一个使用 REDIS 存储用户列表的网站。它在一个排序集中,其中分数只是将它们放入列表的时间。对该列表进行分页非常容易。有问题的部分来了,当我想从这个列表中只显示有分页的在线用户(如有必要)时。我每分钟都有一个 SET,我只存储用户 ID,即在线用户。

问题是,我无法将 SET 与 SORTED SET 相交。所以我想的是,将在线用户集转换为无分数的排序集,并在请求时使用 INTERSECT,如果有人在同一分钟上线,那没问题,他们将在下一个显示分钟,我只使用 ZINTERSTORY 命令。

有人有更好的主意吗?

最佳答案

好消息 - 您实际上可以在排序的常规集上使用 ZINTERSTORE 命令,例如:

127.0.0.1:6379> sadd s a b c
(integer) 3
127.0.0.1:6379> smembers s
1) "b"
2) "c"
3) "a"
127.0.0.1:6379> zadd z 0 a 1 b 3 d
(integer) 3
127.0.0.1:6379> zrange z 0 -1
1) "a"
2) "b"
3) "d"
127.0.0.1:6379> zinterstore t 2 s z
(integer) 2
127.0.0.1:6379> zrange t 0 -1
1) "a"
2) "b"
127.0.0.1:6379> zinterstore tt 1 s
(integer) 3
127.0.0.1:6379> zrange tt 0 -1 withscores
1) "a"
2) "1"
3) "b"
4) "1"
5) "c"
6) "1"

关于php - 使用分页过滤REDIS中的在线用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26448819/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com