如何使用Java在Redis中找到两个键的交集?

时间:2013-12-18 12:06:08

标签: java spring redis

我在Redis中有两把钥匙。第一个键包含一组字符串作为值。第二个键包含有序的对象集(String作为值和分数)。我想获取元素,其中第一个键中的字符串和第二个键中对象的字符串字段相似。

如果我用第二个键中的字符串替换对象,我可以获取但我想获取字符串列表及其分数。

我使用Spring-data-redis和jedis进行Redis处理。

是否可以获取常用字符串列表及其相应的分数?如果是的话,如何。

1 个答案:

答案 0 :(得分:0)

如何存储数据将影响您想要检索数据的方式。通过存储注释中列出的键,您基本上只能使用字符串操作来确定任何有用的内容,而这实际上并不是使用Redis的价值。 (它不是用于“搜索”,它意味着快速查找。)

考虑这样的事情:

Redis中使用的键将是您的第一组字符串,每个字符串都包含一个值列表。这些列表中的值将是您的第二组字符串,并且可能在不同的列表中重复(如您所见)。

LPUSH "x1" "POJO[field1=x1, field2=y1]" "POJO[field1=x1, field2=y2]"

LPUSH "x2" "POJO[field1=x2, field2=y2]"

etc...

当您想要第一个数字的值时

LRANGE x1 0 1000(或LLEN x1 - >“结果”,然后是LRANGE x1 0 "result"