我的文件包含数千行(每行包含3个字段,第一个是k长度字符串,然后是数字,第三个是另一个字符串),形式为: -
k|1|r1
k|1|r2
k|2|r2
k1|1|r3
我使用redis-py加载它,使用: -
sadd('k:1', 'r1')
sadd('k:1', 'r2')
sadd('k:2', 'r2')
sadd('k1:1', 'r3')
形成类似
的映射{
"k:1" : ("r1", "r2"),
"k:2" : ("r2"),
"k1:1" : ("r3")
}
我打算通过删除k的重复信息来存储表单的值(这是前3条记录常用的k长度字符串):
{
"k": {
"1" : ("r1", "r2"),
"2" : ("r2")
}
"k1": {
"1" : ("r3")
}
}
我的想法是将存储集的值存储在不同的密钥下,该密钥可以作为哈希中k的值。还有比这更好的方法吗?
答案 0 :(得分:1)
将这些集存储在不同的密钥下将起作用,但是如果这些集是静态的,那么您不需要设置功能 - 相反,您可以保存自己的查找并将该集直接存储在地图中,例如:作为逗号分隔值(或任何适合您的数据的分隔符),如果您只有几个值,或者如果您有很多值,则作为gzip压缩分隔值(根据我的经验,如果字符串是足够大,然后g(un)zip的成本被降低的网络成本抵消。