长话短说。我有数千个属于 6 个可能类别之一的条目:
foo => category1
bar => category2
baz => category3
lol => category1
存储键=>值看起来有点奇怪,因为我会多次重复这些值。所以我在考虑使用包含每个元素的 6 个集合。
我的应用收到一个 key 并且必须返回它所属的类别。如果我只使用 key=>values 方法,它就像查询那个键一样简单。如果我使用集合,我必须查询每个集合以查找我的项目:
if SISMEMBER category1 "baz";
return category1
if SISMEMBER category2 "baz";
return category2
if SISMEMBER category3 "baz";
return category3
在这种情况下,最好的方法是什么?除了性能和空间方面的考虑之外,还有什么我应该在这里考虑的吗?
最佳答案
使用hashmap或者key-value来存储item=>category关系,然后可以使用*multiple操作来判断每一个item的类别,相对于一个一个的判断性能会有很大的提升。
例子:
hset('rel', item1, cat1);
hset('rel', item2, cat2);
...
hmget('rel', array(item1, item2)); // return array(item1=>cat1, item2=>cat2);
并使用 set/hashmap/zset 将项目按类别分组;
关于redis - 对 Redis 中的值进行分类......我应该使用集合还是键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20036552/