我有redis键,这些键的值作为哈希集(键,值对)。我正在使用python来检索关键值。 例如:
top_link:files
key: file_path/foldername1
value: filename1
key: file_path/foldername2
value: filename2
key: test_path/foldername3
value: filename3
我想找出键名以“file_path”
开头的所有哈希集键我试过
all_keys = redis_connection.hscan_iter("top_link:files")
for key in all_keys:
if key.startswith("file_path"):
redis_connection.hget("top_link:files",key)
是否有更好的方法来查找以“file_path”开头的所有哈希键。 SCAN似乎正在做我想要实现的目标。但是所有示例都显示在顶级键(top_link:files)上扫描,但不在散列键上扫描。有什么建议? 谢谢。
答案 0 :(得分:2)
您可以在match
中提供hscan_iter
模式,以获取仅匹配的密钥对。通过hscan_iter
,您可以获得键值对tuple
。因此,您不必使用hget
来获取值。
matched_pairs = redis_connection.hscan_iter('top_link:files', match='file_path*')
for keyvalue in matched_pairs:
# Here `keyvalue` is a tuple containing key and value
print keyvalue[0], keyvalue[1]
输出:
file_path/foldername2 filename2
file_path/foldername1 filename1