我有包含項目ID及其價格的數據。我想把item id作爲關鍵和價格作爲價值。 我能想到的最好的辦法是如何在Redis實例中有效地保存項目價格地圖數據
> set item:1 2300
> set item:2 4300
等。
但是,這個問題是我必須運行一個循環來設置我的節點中的所有數據。如何在redis中使用數據結構,它將所有鍵 - 值對一起設置並向上插入(替換或插入)所需的鍵。
我有包含項目ID及其價格的數據。我想把item id作爲關鍵和價格作爲價值。 我能想到的最好的辦法是如何在Redis實例中有效地保存項目價格地圖數據
> set item:1 2300
> set item:2 4300
等。
但是,這個問題是我必須運行一個循環來設置我的節點中的所有數據。如何在redis中使用數據結構,它將所有鍵 - 值對一起設置並向上插入(替換或插入)所需的鍵。
您可以使用MSET
命令一次設置多個鍵值對。
此外,SET
和MSET
命令都是upserts操作。如果鍵不存在,則這些命令插入鍵值對,否則更新該值。
您可以爲此使用單個HSET。
HMSET HSET:ITEM:PRICES item:1 2300 item:2 4300 item:3 5800 item:<ID> <PRICE> ...
更多存儲器效率可以刪除「項目:」從字段名(redis的將僅使用4 + 4個字節用於在存儲器中的每個這樣的條目)。
HMSET HSET:ITEM:PRICES 1 2300 2 4300 3 5800 <ID> <PRICE> ...
然後,如果你想檢索項目1的價格和2
HMGET HSET:ITEM:PRICES item:1 item:2
,或者如果你只是使用更有效的方式:
HMGET HSET:ITEM:PRICES 1 2