我刚刚被卡住了。 我在使用实体时有一个问题,我想将它保存到Redis,但过了一段时间我想得到这个实体,但我不知道会搜索哪种查询。
所以,我需要将几个密钥保存到Redis中。我将能够通过几个查询来搜索我的实体。
例如, 我有一个实体:
public class Book
{
int Id,
string Name
}
有一次,我希望按ID搜索此实体,在另一种情况下按名称搜索。
您有任何建议或解决方法吗? 也许,我可以使用标签或类似的东西。
非常感谢!!!
答案 0 :(得分:1)
Redis不像常规的基于表的数据库服务器;你无法任意搜索。如果你想能够通过id搜索某些东西,那么你需要手动索引id - 大概是通过" hash"从键控值到主项目键的类似物(但是你存储主要项目)。
如果您想要方便这类事情,可以查看RediSearch - redis的可选模块,它可以简化此类方案,同时提供针对指定成员的搜索选项。你的书籍对象将成为"文件"在redisearch命名法中。
答案 1 :(得分:0)
是的,我找到了答案。 在Redis中,您可以使用值的词典。 因此,在此问题之后,我们必须使用Key& amp;价值,在价值内我们将再次拥有Key&值。
然后你将通过两个键获得值。
结果,你会有类似的东西
<强>
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);