我们正在实施StackExchange.Redis来存储有关三个电子商务网站(大约 18,500 种产品)的所有信息。信息存储在 SQL Server 数据库中,映射到自定义对象,然后使用以下键命名约定添加到 Azure Redis 缓存中:
urn:products:{0}:{1}
(其中 0 是商店标识符,1 是产品标识符)。我阅读了KEYS、SCAN、FLUSHDB 等在哪里?并且能够获得与urn:products:{0}
by 模式匹配的键。我们面临的问题是我们的项目涉及很多GetAllProducts List < Products >
,GetAllCategories List < Categories >
然后被 LINQ 函数使用。
基于此:
- 我尝试将所有产品(自定义对象列表)存储在一个键 (
urn:products:all
) 中,但这种方法会在 Azure Redis 缓存中产生超时。这种方法是建议的方法吗?还是最好将每个产品存储在单独的密钥中? - 我认为循环每个键以获取每个值是不正确的。是否可以按模式获取键/值的集合?
- 我也阅读了 HASHES,但我认为它们对我们的要求没有帮助。