簡體   English   中英

在Redis中存儲詞典的字典(StackExchange.Redis)

[英]Storing Dictionary of Dictionary in Redis (StackExchange.Redis)

我想將字典詞典存儲在Redis中。 例如,我有產品,訂單,客戶等業務實體,它們都具有ID和其他相關屬性。

我正在使用最新版本的StackExchage.Redis C#

期望:1.當我保存ID為10的產品時,它應該首先檢查是否有可用的產品類型實體,然后檢查是否存在產品ID 10,如果是,則返回整個產品。 2.其他實體也一樣。 ID 10也可能適用於Order實體。

鍵:TypeName值:Dict(int,Type)

每當發生任何寫操作時,都不想更新整個字典,而只想添加新記錄或更新字典中的記錄。

因此,1.每當請求所有產品時,我都可以返回內部dictionary.Values。2.如果請求了單個產品,那么我可以返回一個產品3.如果請求刪除所有產品,則它將一次性刪除所有內容。 4.使用HashSet設置每個ProductId的超時時間?

似乎您需要Redis哈希 您可以為產品,訂單等創建散列,並通過其鍵存儲每個項目。 這是一個例子:

  • 將產品添加到哈希/詞典中
    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

編輯: 計算鍵中的項目數

有什么命令可以讓我計算總價值嗎? 同類產品有15條記錄

您應該使用HLEN

redis>HSET product product1 "Hello"
(integer) 1
redis> HSET product product2 "World"
(integer) 1
redis> HLEN product
(integer) 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM