【Redis學習】Hash數據類型

引言

通過上一章我們知道,可以使用string類型存儲csdn專家博客的用戶信息,但是較頻繁的更新用戶信息,String類型操作起來比較笨拙,那麼有沒有更好的方式呢?我們可以使用redis中的hash數據類型來存儲對象類數據。
在這裏插入圖片描述
hash數據類型:典型的對象類數據存儲,一個存儲空間保存多個鍵值對數據。

基本操作

  • 添加數據
hset key field value
  • 獲取數據
hget key field #獲取指定字段的值
hgetall key #獲取所有的字段和值
  • 刪除數據
hdel key field1 field2 ...
  • 添加多個數據
hmset key field1 value1 field2 value2 ...  #如果field存在則覆蓋,否則創建
  • 獲取多個數據
hmget key field1 field2 ... 
  • 獲取hash表中字段的數量
hlen key
  • 獲取hash表中是否存在指定的字段
hexists key field #返回值:1存在,0不存在

擴展操作

  • 獲取hash表中所有的字段名或字段值
hkeys key #獲取hash表中的所有字段名
hvals key #獲取hash表中的所有字段值
  • 設置指定字段的數值增加指定範圍的值
hincrby key field increment #指定hash表中的字段對應的值增加指定的increment(整數)
hincrbyfloat key field increment #指定hash表中的字段對應的值增加指定的increment(float)

hash類型數據操作注意事項

  • hash表中的value只能存儲字符串,不允許存儲其他數據類型,不存在嵌套現象。如果數據未獲取到,返回(nil)
  • 每個hash可以存儲 2^32-1個鍵值對
  • hash類型很貼近對象類的數據存儲,並且可以靈活添加刪除對象屬性,但是hash設計初衷不是爲了存儲大量對象而設計的,千萬不要濫用,否則效率會很低下。
    ash類型很貼近對象類的數據存儲,並且可以靈活添加刪除對象屬性,但是hash設計初衷不是爲了存儲大量對象而設計的,千萬不要濫用,否則效率會很低下。
  • hgetall操作可以獲取所有的屬性,但是如果field過多,效率會很低下,所以用到啥取啥,別全部都取。

應用場景

購物車、商家搶購

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章