我想使用Redis-cli查看Redis服务器中的队列列表。我使用这个命令只是为了监视队列。
redis-cli MONITOR | grep queuename如果我们有符合我要求的客户,请告诉我。
发布于 2021-11-23 19:29:48
我似乎没有足够的名气来在评论中澄清你是如何实现你的队列的,所以我将在下面提供一些想法,假设你已经将你的队列实现为一个先进先出队列,使用RPUSH和LPOP在你的队列中添加和删除项。
> RPUSH queue-1 "task-a"
(integer) 1
>LPOP queue-1
"task-a"关于这种方法有几个注意事项。首先,如果您的生产实例中有大量密钥,这会带来一些性能问题。当您的团队其他成员意识到您的redis实例可能会受到一些性能影响时,最好将其用于临时故障排除。其次,这将只显示列表中包含元素的键。如果您已经排空了一个队列,它将不会出现在返回值中。
另一种方法是使用排序集来保存用作队列的列表的键,并修改与队列相关的分数以了解队列的大小。在向队列中添加或删除消息时,还可以使用ZADD根据添加或返回的元素数来增加分数。这将允许您通过在任何时候使用ZREVRANGE减小队列大小来快速获得用作队列的列表集合。
> RPUSH queue-1 "task-a"
(integer) 1
> ZADD queues INCR 1 queue-1
"1"
> RPUSH queue-1 "task-b"
(integer) 2
> ZADD queues INCR 1 queue-1
"2"
> RPUSH queue-2 "message-a"
(integer) 1
> ZADD queues INCR 1 queue-2
"1"
> RPUSH queue-2 "message-b"
(integer) 2
> ZADD queues INCR 1 queue-2
"2"
> LPOP queue-2
"message-a"
> ZADD queues INCR -1 queue-2
"1"
> ZREVRANGE queues 0 -1 WITHSCORES
1) "queue-1"
2) "2"
3) "queue-2"
4) "1"https://stackoverflow.com/questions/70076370
复制相似问题