簡體   English   中英

Redis 中的正確集合,允許按字段更新和刪除

[英]Proper collection in Redis that will allow updating and deleting by field

我想將一組天氣預報存儲為 redis 中的 JSON 對象:

{
  "city":"London",
  "weather":"SUNNY",
  "lastPrediction": "..",
  "source":"..."
}

每個項目都有一個唯一的城市名稱,並且會有多達數萬個天氣預報。

我希望能夠將它們添加到集合中,按城市查找和更新單個項目,並按城市將其刪除。

我想知道我應該使用哪種結構 - 我特別不知道如何更新和刪除某個字段的條目。

由於每個項目都有一個獨特的“城市”,因此 hash 非常適合您的情況。

  • 您可以使用HSET設置多個項目(如果您的 redis 版本 < 4.0.0 - 那么請檢查HMSET
  • 您可以使用HGET訪問各個字段
  • 再次使用HSET更新您的字段,並使用HDEL刪除您的字段
  • 如果您想獲取所有字段,則使用HGETALL

這是演示;

127.0.0.1:6379> HSET london weather SUNNY lastPrediction "foo" source "foobar"
(integer) 3
127.0.0.1:6379> HGET london weather
"SUNNY"
127.0.0.1:6379> HGETALL london
1) "weather"
2) "SUNNY"
3) "lastPrediction"
4) "foo"
5) "source"
6) "foobar"
127.0.0.1:6379> HSET london weather CLOUDY
(integer) 0
127.0.0.1:6379> HGET london weather
"CLOUDY"
127.0.0.1:6379> HDEL london source
(integer) 1
127.0.0.1:6379> HGETALL london
1) "weather"
2) "CLOUDY"
3) "lastPrediction"
4) "foo"
127.0.0.1:6379>

請考慮 redis 鍵和字段區分大小寫。

暫無
暫無

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

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