• <strike id="6sogq"><s id="6sogq"></s></strike>
  • <strike id="6sogq"></strike>

    千鋒教育-做有情懷、有良心、有品質的職業教育機構

    400-811-9990
    手機站
    千鋒教育

    千鋒學習站 | 隨時隨地免費學

    千鋒教育

    掃一掃進入千鋒手機站

    領取全套視頻
    千鋒教育

    關注千鋒學習站小程序
    隨時隨地免費學習課程

    上海
    • 北京
    • 鄭州
    • 武漢
    • 成都
    • 西安
    • 沈陽
    • 廣州
    • 南京
    • 深圳
    • 大連
    • 青島
    • 杭州
    • 重慶
    當前位置:成都千鋒IT培訓  >  技術干貨  >  Redis數據類型-Hash

    Redis數據類型-Hash

    來源:千鋒教育
    發布人:gxy
    時間: 2023-05-29 15:13:00

      一. 背景說明

    hash

      小白:老師,java中的Map集合類型在Redis中有對應的存儲嗎?

      老師:有的,我帶你擼一波。

      二. 概述

      Redis的hash哈希存儲類型,類似于是java中的map存儲結構,適合用來存儲對象,每個哈希最多可以存儲4294967295(2^32-1)個字段值對,具體數量實際上也受Redis部署的虛擬機上的總內存的限制。

          理解了它的數據結構后,接下來偉哥帶你開啟命令操作之旅。

      三. hset、hget

      hset、hget主要用來設置和獲取單條數據,格式說明如下:

      暫時無法在飛書文檔外展示此內容

    #貼心測試如下:

      #設置值 hset key field value

      192.168.65.15:6379> hset u1 name zs

      (integer) 1

      #獲取值 hget key field

      192.168.65.15:6379> hget u1 name

      "zs"

      #獲取值:如果key不存返回nil

      192.168.65.15:6379> hget u2 name

      (nil)

      #獲取值:如果field不存返回nil

      192.168.65.15:6379> hget u1 name1

      (nil)

          四. hmset、hmget

      上述一條一條地增加數據有點繁瑣,為此,Redis準備了多條數據的操作,格式如下:

      暫時無法在飛書文檔外展示此內容

    #貼心測試如下:

      #批量設置值

      192.168.65.15:6379> hmset u1 name zs age 22 sex boy

      OK

      #批量獲取值,按field順序顯示

      192.168.65.15:6379> hmget u1 name age sex

      1) "zs"

      2) "22"

      3) "boy"

      #如果key不存在,則返回nil

      192.168.65.15:6379> hmget u2 name

      1) (nil)

      #如果field不存在,則返回nil

      192.168.65.15:6379> hmget u1 name name1

      1) "zs"

      2) (nil)

          五. hincrby、hsetnx

      如果value是數值類型,我們可以用hincrby來增加大小;在添加時如果key-field不存在,才實現添加,可以用hsetnx命令。具體格式如下:

      暫時無法在飛書文檔外展示此內容

    #貼心測試如下:

      #查看age原來的值

      192.168.65.15:6379> hget u1 age

      "22"

      #hincrby給age增加5

      192.168.65.15:6379> hincrby u1 age 5

      (integer) 27

      #查看增加后的結果22+5=27

      192.168.65.15:6379> hget u1 age

      "27"

      #hsetnx設置如果field存在,則不添加

      192.168.65.15:6379> hsetnx u1 age 22

      (integer) 0

      #查看age還是27,沒有變化

      192.168.65.15:6379> hget u1 age

      "27"

      #hsetnx設置如果field不存在,添加

      192.168.65.15:6379> hsetnx u1 age1 22

      (integer) 1

      #查看age1是22

      192.168.65.15:6379> hget u1 age1

      "22"

          六. hexists、hgetall、hkeys、hvals、hlen

      在查詢時,有時我們需要知道key是否存在?存在的話有多少個field?如何顯示所有的內容?如何顯示所有的field或者value?為解決這些問題,偉哥幫你收集以下命令來解決:

      暫時無法在飛書文檔外展示此內容

    #貼心測試如下:

      #檢查field是否存在

      192.168.65.15:6379> hexists u1 age

      (integer) 1

      #如果key不存在,返回0

      192.168.65.15:6379> hexists u2 age

      (integer) 0

      #如果field不存在,返回0

      192.168.65.15:6379> hexists u1 age2

      (integer) 0

      #獲取u1結構中的全部field和value

      192.168.65.15:6379> hgetall u1

      1) "name"

      2) "zs"

      3) "age"

      4) "27"

      5) "sex"

      6) "boy"

      7) "age1"

      8) "22"

      #獲取u1結構中的全部field

      192.168.65.15:6379> hkeys u1

      1) "name"

      2) "age"

      3) "sex"

      4) "age1"

      #獲取u1結構中的全部value

      192.168.65.15:6379> hvals u1

      1) "zs"

      2) "27"

      3) "boy"

      4) "22"

      #獲取u1結構中field的數量

      192.168.65.15:6379> hlen u1

      (integer) 4

      復制代碼

      七. hdel

      我們一般用的刪除單詞是remove 和delete,這里刪除用的是hdel,h表示hashes,del表示delete,具體如下:

      暫時無法在飛書文檔外展示此內容

      #貼心測試如下:

      #查看u1的數據

      192.168.65.15:6379> hgetall u1

      1) "name"

      2) "zs"

      3) "age"

      4) "27"

      5) "sex"

      6) "boy"

      7) "age1"

      8) "22"

      #刪除u1中 age1和 sex的數據

      192.168.65.15:6379> hdel u1 age1 sex

      (integer) 2

      #查看刪除結果

      192.168.65.15:6379> hgetall u1

      1) "name"

      2) "zs"

      3) "age"

      4) "27"

     

    聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

    猜你喜歡LIKE

    什么是事件對象?事件對象的使用

    2023-05-29

    什么是單體應用?如何理解

    2023-05-29

    面試干貨之邏輯斯蒂和XGB小細節

    2023-05-17

    最新文章NEW

    java面試之消息隊列

    2023-05-24

    java算法之冒泡排序

    2023-05-23

    volatile底層實現原理

    2023-05-04

    相關推薦HOT

    更多>>

    快速通道 更多>>

    最新開班信息 更多>>

    網友熱搜 更多>>