c# - 按日期查询Redis中的哈希

标签 c# redis stackexchange.redis

保存在 Redis 中的模型包含两个日期字段 - 开始日期和结束日期。我已将所有数据插入哈希中。超过10K。 如何使用两个日期字段作为参数进行有效查询。现在我从数据库中获取所有哈希值,反序列化它们并查询结果。效率不高,但可以用于测试。想知道如何以最好的方式实现这一目标。 谢谢

最佳答案

Redis 并非设计为可查询。您需要以应用层稍后需要的方式存储数据。

例如,如果您想在 开始日期 之前按升序排列您的模型,那么您需要将模型的标识符存储在一个有序集合中,以提供 startdate 作为一个整数,它将被用作排序的集合项 score

如果您想让您的模型具有更复杂的标准,您需要绞尽脑汁计算基于模型属性以外的分数,以便将它们存储在其他排序集中。

稍后,您将能够获取这些有序标识符的范围(zrangezrevrange...),以将它们传递给 hmget 命令,它将获取给定标识符的所有值。

您需要将 Redis 视为索引中的索引。它是关于索引您的数据以有效地检索它。

关于c# - 按日期查询Redis中的哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36094575/

相关文章:

azure - 当我在 Microsoft Azure 中交换我的应用程序服务时如何更改 redis 目标

c# - Redis 声明标记为 DataContract 的类不可序列化?

redis - 如何找到具有特定成员值的Key?

asp.net-core - 有没有办法更新 Redis 中的值?

c# mocking IFormFile CopyToAsync() 方法

c# - 等待应该恢复 Thread.CurrentContext 吗?

redis -/var/run/redis/redis.pid 存在,进程已经运行或崩溃

c# - 显示和隐藏 winforms 的部分内容(扩展?)C# .NET

c# - 不指定参数的函数字典

java - 在 Redis 重启时自动将 Storm Topology 重新连接到 Redis Cluster