在 Redis 中存储 Dictionary of Dictionary (StackExchange.Redis)
Storing Dictionary of Dictionary in Redis (StackExchange.Redis)
我想在Redis中存储Dictionary of Dictionary。例如我有产品、订单、客户等...业务实体,它们都有 Id 和其他相关属性。
我正在使用最新版本的 StackExchage.Redis C#
期望:
1. 当我用 ID 10 保存产品时,它应该首先检查是否
产品类型实体可用
然后检查产品 ID 10 是否存在,如果是,则 return 整个产品。
2. 其他实体也一样。 Id 10 也可用于 Order 实体。
键:TypeName 值:Dict(int, Type)
每当发生任何写入时,不想更新整个字典,只想在字典中添加新记录或更新记录。
所以,
1. 每当需要所有产品时,我都可以 return inner dictionary.Values
2. 如果需要单个产品,那么我可以 return 一件产品
3.如果请求删除所有产品,那么它将一次性删除所有内容。
4. 使用 HashSet 为每个 ProductIds 设置超时?
看来你需要Redis Hashes。您可以为产品、订单等创建散列,并通过密钥存储每个项目。这是一个例子:
- 正在将产品添加到 hash/Dictionary
redis> HSET product id:10 "{product_10_json}" id:11 "{product_11_json}"
(integer) 2
- 通过 id 检索单个产品。
redis> HGET product id:10
"{product_10_json}"
- 获取所有产品列表
redis> HGETALL product
1) "id:10"
2) "{product_10_json}"
3) "id:11"
4) "{product_11_json}"
- 删除一个商品列表:
redis> Hdel product id:10
(integer) 1
redis> HGETALL product
1) "id:11"
2) "{product_11_json}"
- 要删除所有产品只需删除相应的键
redis> del product
(integer) 1
编辑:计算键中的项目数:
Is there any command which will give me total values count? like product has 15 records
你应该使用HLEN
redis>HSET product product1 "Hello"
(integer) 1
redis> HSET product product2 "World"
(integer) 1
redis> HLEN product
(integer) 2
我想在Redis中存储Dictionary of Dictionary。例如我有产品、订单、客户等...业务实体,它们都有 Id 和其他相关属性。
我正在使用最新版本的 StackExchage.Redis C#
期望: 1. 当我用 ID 10 保存产品时,它应该首先检查是否 产品类型实体可用 然后检查产品 ID 10 是否存在,如果是,则 return 整个产品。 2. 其他实体也一样。 Id 10 也可用于 Order 实体。
键:TypeName 值:Dict(int, Type)
每当发生任何写入时,不想更新整个字典,只想在字典中添加新记录或更新记录。
所以, 1. 每当需要所有产品时,我都可以 return inner dictionary.Values 2. 如果需要单个产品,那么我可以 return 一件产品 3.如果请求删除所有产品,那么它将一次性删除所有内容。 4. 使用 HashSet 为每个 ProductIds 设置超时?
看来你需要Redis Hashes。您可以为产品、订单等创建散列,并通过密钥存储每个项目。这是一个例子:
- 正在将产品添加到 hash/Dictionary
redis> HSET product id:10 "{product_10_json}" id:11 "{product_11_json}"
(integer) 2
- 通过 id 检索单个产品。
redis> HGET product id:10
"{product_10_json}"
- 获取所有产品列表
redis> HGETALL product
1) "id:10"
2) "{product_10_json}"
3) "id:11"
4) "{product_11_json}"
- 删除一个商品列表:
redis> Hdel product id:10
(integer) 1
redis> HGETALL product
1) "id:11"
2) "{product_11_json}"
- 要删除所有产品只需删除相应的键
redis> del product
(integer) 1
编辑:计算键中的项目数:
Is there any command which will give me total values count? like product has 15 records
你应该使用HLEN
redis>HSET product product1 "Hello"
(integer) 1
redis> HSET product product2 "World"
(integer) 1
redis> HLEN product
(integer) 2