中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Redis數據類型string和Hash怎么用

發布時間:2022-03-04 13:43:45 來源:億速云 閱讀:160 作者:小新 欄目:開發技術

這篇文章給大家分享的是有關Redis數據類型string和Hash怎么用的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

String類型命令操作

String類型是在Redis中最常用的數據類型,它也是很多程序員在日常開發中最常使用甚至只會用的數據類型,這也就導致很多人在使用Redis的時候,就只知道使用string類型,而忽視了其他數據類型的重要性。所以我也希望大家在學習完這篇文章之后,對Redis中的數據類型有一個新的認識,不要只使用String類型進行Redis的操作啦!

注意:在Redis的客戶端中進行操作之前,一定要保證Redis的服務器界面處于開啟狀態,否則會出現客戶端拒絕訪問或打不開的情況哈!

設置指定key的值

Redis中給string類型的數據設置指定key的方法就是最基本的設置key-value的方法,

語法如下:

SET key value
    key為索引
    value為對應的值

例如我們要設置索引為k3,值為v3的鍵值對數據

127.0.0.1:6379> SET k3 v3
OK

返回值為ok,則說明設置成功!

獲取指定key的值

如果我們已經在Redis中設置了數據,那么我們可以通過該數據的key來獲取它,語法格式如下:

GET key
    key為要獲取的值對應的索引

例如我們獲取剛才輸入的索引為k3,值為v3的數據,如果該索引存在,那么將會返回對應的值,如果不存在就會返回(nil)也就是null的意思。

127.0.0.1:6379> GET k3
"v3"
127.0.0.1:6379> GET k4
(nil)

返回key中字符串值的子串

這個命令的作用是獲取Redis中已經存在的字符串的子串,同時我們可以指定一個下標索引,指定要獲取哪一段字符。命令的格式如下:

GETRANGE key start end
    key為字符串的索引
    start為截取的起始下標
    end為截取的終止下標

比如我們截取索引為“mykey”,值為“huixiaoyuan”的數據的子串,

127.0.0.1:6379> GETRANGE mykey 2 5
"ixia"
127.0.0.1:6379> GETRANGE mykey 2 -1
"ixiaoyuan"
127.0.0.1:6379> GETRANGE mykey 1 100
"uixiaoyuan"

講解一下上面的代碼,因為字符串的起始下標是0,所以第2個對應的字符是“i”,如果想要截取字符串從某一個字符到最后部分的子串,那么可以直接將最后一個參數設置為-1.

如果你設置的獲取子串的范圍比較大,已經超出了字符串原本的長度,那么只會返回到字符串的最后一個字符!

獲取多個給定key的值

與GET命令不同,GET命令只能獲取一個key對應的值,而這個命令可以用于獲取多個key對應的值,格式如下:

MGET key1 [key2...]
    在MGET的后面可以追加多個索引,以空格分開

如我們來獲取一下mykey、mykey1、mykey2分別對應的值,

127.0.0.1:6379> MGET mykey mykey1 mykey2
1) "huixiaoyuan"
2) "value1"
3) "value2"

返回key所對應的字符串的長度

這個命令的作用是獲取到當前索引對應的字符串的長度,格式如下:

STRLEN key
    key為字符串對應的索引
127.0.0.1:6379> STRLEN mykey
(integer) 11

設置一個或多個鍵值對

我們知道SET命令的作用是設置一個鍵值對,但是如果有多個鍵值對同時設置呢?這個時候就可以使用這個命令了,格式如下:

MSET key1 value1 [key2 value2 ...]
    key1 value1為要設置的第一個鍵值對,之后的以空格分隔

如下我們設置同時設置三個鍵值對

127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3
OK

和上面這個命令相對的還有一個,該命令僅能在key不存在的情況下才能設置,否則所有的key-value都將會賦值失敗,格式如下:

MSETNX key1 value1 [key2 value2 ...]
    key1 value1為要設置的第一個鍵值對,之后的以空格分隔

如我們給已經存在的k4設置值,那么返回0,說明設置失敗,如果設置成功,則會返回1

127.0.0.1:6379> MSETNX k1 v1 k4 v4
(integer) 0
127.0.0.1:6379> MSETNX k4 v4 k5 v5
(integer) 1

將key中所存儲的數值加一

這個命令可以將我們存儲的字符的值加1,之后返回相加后的結果,但是如果該key對應的字符不是一個數的話,就會返回一個錯誤信息,格式如下:

INCR key
    key為要加1的數對應的索引

如下我們給剛才設置的k8加1,那么就會報錯,重新設置一個數值的鍵值對,再進行加1,就可以返回對應的數據

127.0.0.1:6379> INCR k8
(error) ERR value is not an integer or out of range
127.0.0.1:6379> SET num1 10
OK
127.0.0.1:6379> INCR num1
(integer) 11

與INCR 命令對應的還有一個INCRBY 該命令可以給指定的key對應的數據加上指定的增量,格式如下:

INCRBY key increment

    key為索引
    increment為要增加的值
127.0.0.1:6379> INCRBY num1 5
(integer) 16

將key中所存儲的數值減一

既然存在增加的操作,那么對應著也就是存在減少的操作,格式如下:

DECR key
    key為要加1的數對應的索引

上一步我們將num1對應的數值加5后得到16,現在我們對其進行減一操作。

127.0.0.1:6379> DECR num1
(integer) 15

與這個命令對應的還有減指定的數據的命令,格式如下:

DECRBY key increment
    key為索引
    decrement為要增加的值
127.0.0.1:6379> DECRBY num1 2
(integer) 13

字符串追加

如果 key 已經存在并且是一個字符串, APPEND 命令將指定的 value 追加到該 key 原來值(value)的末尾。返回的是追加后的長度,格式如下:

APPEND key value
    key為索引
    value為要追加的字符串

如我們在mykey1-value1的后面追加“hello”

127.0.0.1:6379> APPEND mykey1 hello
(integer) 11
127.0.0.1:6379> GET mykey1
"value1hello"

Hash類型

Hash類型是一個String類型的field(字段)和value(值)的映射表,它的作用是可以用來存儲我們定義的數據對象,所以簡單來說它是一個key下面存儲了多個key-value的情況,給大家簡單的話一個Hash的結構圖:

Redis數據類型string和Hash怎么用

接下來我們來簡單講一下在Redis中對于Hash這種數據類型,常用的幾個命令,

設置一個Hash數據

設置Hash數據所使用的命令不是SET,而是HMSET,你可以理解為H代表Hash的意思,M代表Map的意思,該命令的格式如下:

HMSET key fieId1 value1 [fieId2 value2…]

  • key為這個Hash數據對應的唯一性索引

  • field為下面存儲的一個鍵值對的鍵

  • value為該鍵對應的值

如我們設置key為“myhash”,里面存儲的field分別為name-huixiaoyuan、sex-nan、age-3的三個鍵值對

127.0.0.1:6379> HMSET myhash name huixiaoyuan sex nan age 3
OK

獲取指定哈希表中所有的字段和值

查看指定哈希表中所有的字段和值的命令是HGETALL,作用是取出該hash中所有的數據,格式如下

HGETALL key

  • 其中key為對應著這個Hash數據的索引

如我們查看剛才設置的hash數據

127.0.0.1:6379> HGETALL myhash
1) "name"
2) "huixiaoyuan"
3) "sex"
4) "nan"
5) "age"
6) "3"

獲取存儲在哈希表中指定字段的值

上一個命令是獲取所有的字段,那么現在這個命令是只獲取指定哈希表中指定字段的值,命令的格式如下:

HGET key field

  • key哈希表的索引

  • field獲取的值對應的字段

如我們獲取上面的哈希表中字段為name對應的值

127.0.0.1:6379> HGET myhash name
"huixiaoyuan"

刪除一個或多個哈希表字段

刪除一個或多個哈希表字段的命令是HDEL,該命令可以刪除指定哈希表中指定的字段,以及其對應的值,格式如下:

HDEL key field1 [field2…]

  • key為指定的哈希表的索引

  • field為要刪除的值對應的字段,如果要刪除多個就以空格分開

如我們要刪除索引為“myhash”的哈希表中值為“3”,對應字段為“age”的字段和值為“nan”,對應字段為“sex”的兩個字段。

127.0.0.1:6379> HGET myhash name
"huixiaoyuan"
127.0.0.1:6379> HDEL myhash age sex
(integer) 2
127.0.0.1:6379> HGETALL myhash
1) "name"
2) "huixiaoyuan"

獲取哈希表中字段的數量

該命令可以獲取指定哈希表中字段的數量,格式如下:

HLEN key

  • key為指定的哈希表的索引

127.0.0.1:6379> HLEN myhash
(integer) 1

獲取哈希表中的所有字段

該命令可以獲取指定哈希表中所有的字段,但是不返回字段對應的值,格式如下:

HKEYS key

  • key為指定的哈希表的索引

127.0.0.1:6379> HKEYS myhash
1) "name"

獲取哈希表中所有的值

上一個命令是獲取到指定哈希表中所有的字段,但是不返回字段對應的值,那么這個命令就是獲取到所有的值,而不返回其對應的字段,格式如下:

HVALS key

  • key為指定的哈希表的索引

127.0.0.1:6379> HVALS myhash
1) "huixiaoyuan"

感謝各位的閱讀!關于“Redis數據類型string和Hash怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

绥阳县| 太谷县| 开鲁县| 吴江市| 古田县| 克什克腾旗| 民丰县| 苍山县| 崇礼县| 凤山县| 夏邑县| 华亭县| 丰顺县| 合川市| 平顺县| 新丰县| 安龙县| 汝阳县| 西吉县| 扎鲁特旗| 乐山市| 礼泉县| 苗栗县| 大连市| 鸡东县| 潜山县| 湖州市| 如东县| 阿尔山市| 天气| 宁强县| 柘荣县| 广宗县| 皮山县| 济南市| 克山县| 刚察县| 虞城县| 城市| 宁化县| 石屏县|