Redis 多键取值(按键乘法搜索)
Redis multiple key for value (multiplying search by keys)
我卡住了。
我在处理一个实体时遇到问题,我想将它保存到 Redis,但是一段时间后 我想获取这个实体,但我不知道会用什么样的查询来搜索它。
所以,我需要将几个键保存到 Redis 中。我将能够通过多个查询来搜索我的实体。
例如,
我有一个实体:
public class Book
{
int Id,
string Name
}
有一次,我想按 ID 搜索此实体,在另一种情况下,我想按名称搜索。
你有什么建议或者解决方法吗?
也许,我可以使用标签 或类似的东西。
非常感谢!!!
Redis 不像常规的基于 table 的数据库服务器;你不能随意搜索。如果你希望能够通过 id 搜索某些东西,那么你需要 通过 id 手动索引 - 大概是通过 "hash" 或类似的从键值到主要项目密钥(无论您存储的是主要项目)。
如果你想要 方便 处理这类事情,也许可以看看 RediSearch - Redis 的一个可选模块,它简化了这种情况,同时提供了搜索选项提名的成员。您的图书对象在重新研究命名法中将变为 "documents"。
是的,我找到了答案。
在 Redis 中,您可以使用值的字典。
因此,在这个问题之后,我们必须使用 Key & Value 来保存数据,在 Value 中我们将再次拥有 Key & Value。
然后您将通过两个键获取值。
因此,您将拥有类似的东西
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);
我卡住了。 我在处理一个实体时遇到问题,我想将它保存到 Redis,但是一段时间后 我想获取这个实体,但我不知道会用什么样的查询来搜索它。
所以,我需要将几个键保存到 Redis 中。我将能够通过多个查询来搜索我的实体。
例如, 我有一个实体:
public class Book
{
int Id,
string Name
}
有一次,我想按 ID 搜索此实体,在另一种情况下,我想按名称搜索。
你有什么建议或者解决方法吗? 也许,我可以使用标签 或类似的东西。
非常感谢!!!
Redis 不像常规的基于 table 的数据库服务器;你不能随意搜索。如果你希望能够通过 id 搜索某些东西,那么你需要 通过 id 手动索引 - 大概是通过 "hash" 或类似的从键值到主要项目密钥(无论您存储的是主要项目)。
如果你想要 方便 处理这类事情,也许可以看看 RediSearch - Redis 的一个可选模块,它简化了这种情况,同时提供了搜索选项提名的成员。您的图书对象在重新研究命名法中将变为 "documents"。
是的,我找到了答案。 在 Redis 中,您可以使用值的字典。 因此,在这个问题之后,我们必须使用 Key & Value 来保存数据,在 Value 中我们将再次拥有 Key & Value。
然后您将通过两个键获取值。
因此,您将拥有类似的东西
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);