Redis多键对应一个值(通过键乘法搜索)

3

我被卡住了。 当我在处理一个实体时,我想把它保存到Redis中,但是过了一段时间后我想要获取这个实体,但我不知道会搜索哪种类型的查询。

因此,我需要将几个键保存到Redis中。然后我就可以通过多个查询来搜索我的实体。

例如, 我有一个实体:

public class Book
{
  int Id,
  string Name
}

有时候,我希望能够通过ID搜索实体,而在另一种情况下则是通过名称搜索。

你有任何建议或解决方案吗? 也许我可以使用标签之类的东西。

非常感谢!!!

2个回答

1
是的,我找到了答案。 在Redis中,您可以使用值的字典。 因此,按照这个问题,我们必须使用键和值保存数据,在值内部再次使用键和值。
然后您将通过两个键获取值。
结果,您将得到像这样的东西
"HSET myhash field1“Hello”
有关更多信息,请参见官方网站(https://redis.io/commands/hset)
如果我们谈论性能,这意味着我们具有时间复杂度:O(N),其中N是所有给定集合中元素的总数。
遵循这些规则: O(n)时间
1. Traversing an array
2. Traversing a linked list
3. Linear Search
4. Deletion of a specific element in a Linked List (Not sorted)
5. Comparing two strings
6. Checking for Palindrome
7. Counting/Bucket Sort and here too you can find a million more such examples.... In a nutshell, all Brute Force Algorithms, or Noob ones which require linearity, are based on O(n) time complexity

所以,这意味着访问该元素的最终时间将大约等于: O(n) + O(m);

1
Redis不像常规基于表格的数据库服务器,您无法任意搜索。如果您想通过id搜索某个内容,则需要手动按id进行索引-可能是通过一个“哈希”或类似的东西,从键入的值转到主项键(不管您如何存储主要项)。
如果您想在这种情况下获得方便,也许可以看一下RediSearch - 这是redis的一个可选模块,可以简化这种情况,同时针对指定成员提供搜索选项。您的书籍对象将成为redisearch命名法中的“文档”。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接