gpt4 book ai didi

python - Redis - 如何 RPUSH/LPUSH 一个空列表

转载 作者:IT王子 更新时间:2023-10-29 06:09:46 25 4
gpt4 key购买 nike

我们想 RPUSH/LPUSH 一个空列表的键。
这是出于一致性原因:当使用 LRANGE 读取键而不是列表是否为空时,其余代码的行为相同。

为什么如果一个键有一个空列表它被删除是一个问题?
因为我们使用 Redis 作为缓存,所以要区分两种情况:
1. 尚未缓存具有相应值的特定键。在这种情况下,我们想要计算值(需要很长时间)并缓存它们。计算的结果可能是一个空列表。
2. 已经缓存了具有空列表的键。在这种情况下,我们不希望执行计算并返回一个空列表。

以下选项不起作用:

1. rpush 键 --> 没有列表值结果为“参数数量错误”。
2. rpush key [] --> 添加一个'[]'项

我们目前使用的(丑陋的)解决方案是存储一个带有“EMPTY-ITEM”项的单项列表,并在我们读取该列表时进行检查。

有什么想法吗?

谢谢

最佳答案

Redis 中不存在空列表——一个列表必须有一个或多个项目。空列表(例如弹出非空列表的结果)会自动删除。

关于python - Redis - 如何 RPUSH/LPUSH 一个空列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38288839/

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