繁体   English   中英

使用StackExchange.Redis将自定义.Net对象存储在Azure Redis缓存中

[英]Storing custom .Net objects in Azure Redis Cache with StackExchange.Redis

我们正在实现StackExchange.Redis,用于存储有关三个电子商务站点(大约18,500种产品)的所有信息。 信息存储在SQL Server数据库中,映射到自定义对象,然后使用以下键命名约定添加到Azure Redis缓存中:

urn:products:{0}:{1}

(其中0是商店标识符,1是产品标识符)。 我读了KEY,SCAN,FLUSHDB等在哪里? 并能够通过模式获得与urn:products:{0}相匹配的密钥。 我们面临的问题是我们的项目涉及很多GetAllProducts List < Products >GetAllCategories List < Categories > ,然后由LINQ函数使用。

基于此:

  • 我尝试将所有产品(自定义对象列表)存储在一个键( urn:products:all )中,但是这种方法在Azure Redis缓存中生成了超时。 这是建议的方法吗? 还是最好将每个产品存储在单独的密钥中?
  • 我认为循环每个键以获得每个值是不正确的。 是否可以通过模式获得键/值的集合?
  • 我也读过HASHES,但是我认为它们对我们的要求没有帮助。

我想知道您一次调用大量记录的方法。 我建议将它们切成不超过一千条的记录。

Redis仅具有非常有限的功能,因此可能无法满足您的要求。 Redis适用于缓存或简单的键值获取器和设置器。 为此,您可以考虑其他基于内存的数据库,例如MongoDB。

在您的情况下,Redis Set是结合或减去给定条件的最佳方法,或者Hash用于基于属性的对象存储。 无论选择哪种方法,都将使用两个或多个数据类型,因为Redis数据类型不是那么通用。

RedisCookbook描述了很好的例子。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM