我使用带有 Redis 的python Twisted 服务器作为持久存储介质。我使用 txredis 库从Twisted中调用Redis。 现在,假设我有多个python dicts,如:
{"ID" : 10}
{"ID" : 11}
{"ID" : 12}
{"ID" : 13}
我首先使用json.dumps()将它们转换为JSON字符串,然后使用RPUSH命令将它们存储在Redis列表中。
现在,我的问题是,我需要搜索此列表(存储在Redis中)以获取特定的ID号,并在列表中确定其索引。我相信我可以编写一个循环,从索引0开始,从Redis检索列表中的每个项目,使用json.loads()将其转换为dict并检查ID。但我觉得效率非常低(向Redis拨打这么多电话)。有没有其他有效的方法来完成这项任务?或者,如果有人可以建议一种新的格式,我可以使用它来存储Redis中的dicts列表,并能够搜索这些dicts。
答案 0 :(得分:1)
为什么不在Redis中保留一个只包含ID_number的辅助哈希 - > dict中的索引,那你可以参考一下吗?
如果由于某种原因(即你不想用尽额外的空间)这是不行的,你可以写一个lua script服务器端的deserialize your json and search it for whatever you need,所以你不要必须将整个json blob传回。