日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

Redis命令详解:Hashs

發(fā)布時(shí)間:2025/3/15 数据库 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Redis命令详解:Hashs 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Hash是一種String類型的field、value的映射表,因此,它非常適合存儲(chǔ)對(duì)象。下面我們來一一介紹與Hash相關(guān)的命令。

HDEL

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(N),其中N為要?jiǎng)h除的field的個(gè)數(shù)

HDEL命令用于刪除指定key的指定的一個(gè)或多個(gè)field。如果指定的field不存在于指定的key中則會(huì)被忽略,如果指定的key不存在,會(huì)當(dāng)做空的hash進(jìn)行處理,向客戶端返回0。

命令的返回值是實(shí)際刪除的field的個(gè)數(shù),不包括不存在的field。

從2.4.0版本開始,該命令支持一次刪除多個(gè)field。在此之前,如果想一次性刪除多個(gè)field,只能利用Redis的事務(wù)來實(shí)現(xiàn)。

HEXISTS

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(1)

HEXISTS命令用來驗(yàn)證指定的key是否包含指定的field,如果包含,返回1;如果不包含或者key不存在,返回0。

HGET

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(1)

返回指定的key中指定的field對(duì)應(yīng)的value。如果field不在key中或者key不存在,則返回nil。

HGETALL

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(N),N為hash的大小,即key中field的個(gè)數(shù)。

返回key所存儲(chǔ)的所有field以及field對(duì)應(yīng)的value。每個(gè)value跟在field的后面被返回,因此,返回值的長(zhǎng)度是hash的size的2倍。如果key不存在,則返回空列表。

127.0.0.1:6379> HGETALL noexist (empty list or set) 127.0.0.1:6379> HSET mykey field1 "follow" (integer) 1 127.0.0.1:6379> HSET mykey field2 "Jackeyzhe2018" (integer) 1 127.0.0.1:6379> HGETALL mykey 1) "field1" 2) "follow" 3) "field2" 4) "Jackeyzhe2018" 復(fù)制代碼

HINCRBY

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(1)

用法:

HINCRBY key field increment 復(fù)制代碼

用來對(duì)指定key的指定field進(jìn)行增量操作,返回計(jì)算后的結(jié)果。如果key不存在,或者key中不包含指定的field,則會(huì)先創(chuàng)建一個(gè)value為0的hash,如果value不是數(shù)字類型,則會(huì)報(bào)錯(cuò)。該命令支持的數(shù)字范圍是64位有符號(hào)整數(shù)。

127.0.0.1:6379> keys * #演示使用,生產(chǎn)環(huán)境不要用 1) "mykey" 127.0.0.1:6379> HINCRBY myhash field1 1 (integer) 1 127.0.0.1:6379> HGET myhash field1 "1" 127.0.0.1:6379> HSET myhash fieldStr "follow" (integer) 1 127.0.0.1:6379> HINCRBY myhash fieldStr 1 (error) ERR hash value is not an integer 127.0.0.1:6379> HGETALL myhash 1) "field1" 2) "1" 3) "fieldStr" 4) "follow" 127.0.0.1:6379> HINCRBY myhash field2 2 (integer) 2 127.0.0.1:6379> HGETALL myhash 1) "field1" 2) "1" 3) "fieldStr" 4) "follow" 5) "field2" 6) "2" 復(fù)制代碼

HINCRBYFLOAT

最早可用版本:2.6.0

時(shí)間復(fù)雜度:O(1)

用來對(duì)指定的key中指定的field進(jìn)行浮點(diǎn)類型的加法,如果field不存在,則會(huì)先創(chuàng)建一個(gè)value為0的field。如果value或者increments不能解析為float類型,則會(huì)報(bào)錯(cuò)。通過下面的例子可以看到,浮點(diǎn)數(shù)的加法會(huì)存在一些偏差。

127.0.0.1:6379> HINCRBYFLOAT myhash field3 0.3 "0.3" 127.0.0.1:6379> HINCRBYFLOAT myhash field3 1.0e3 "1000.29999999999999999" 127.0.0.1:6379> HINCRBYFLOAT myhash field3 -1.0e3 "0.29999999999999999" 127.0.0.1:6379> HINCRBYFLOAT myhash fieldStr 0.1 (error) ERR hash value is not a float 127.0.0.1:6379> HINCRBYFLOAT myhash field3 "haha" (error) ERR value is not a valid float 復(fù)制代碼

HKEYS

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(N),其中N為指定key中field的個(gè)數(shù)

HKEYS命令用于返回指定key中所包含的field列表,如果key不存在,則返回空列表。

HLEN

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(1)

返回指定的key所包含的field的個(gè)數(shù)。如果key不存在,則返回0。

HMGET

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(N):N是請(qǐng)求的field的個(gè)數(shù)

返回指定key中指定的一個(gè)或多個(gè)field的值。如果field不存在,則返回nil,如果key不存在,同樣會(huì)返回field數(shù)量的nil。因?yàn)椴淮嬖诘膋ey被作為空的hash處理。

127.0.0.1:6379> HMGET myhash field1 field2 no-exist 1) "1" 2) "2" 3) (nil) 127.0.0.1:6379> HMGET no-exist field1 field2 1) (nil) 2) (nil) 復(fù)制代碼

HMSET

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(N):N是需要設(shè)置的field的個(gè)數(shù)

為指定的key設(shè)置一個(gè)或多個(gè)field。如果field已經(jīng)存在,則會(huì)被覆蓋。如果指定的key不存在,則會(huì)創(chuàng)建一個(gè)新的hash。

HSCAN

最早可用版本:2.8.0

時(shí)間復(fù)雜度:每次請(qǐng)求的時(shí)間復(fù)雜度為O(1),完成整個(gè)迭代的時(shí)間復(fù)雜度為O(N)

該命令與SCAN命令相似,可以參考我的另外一篇文章Redis命令詳解:Keys中對(duì)SCAN用法的介紹,如果你想要有更深入了了解,可以看我的另外一篇文章深入理解Redis的scan命令。

HSET

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(1)

為指定的key中的field設(shè)置value,如果key不存在,則會(huì)創(chuàng)建一個(gè)新的hash,如果field已經(jīng)存在,則會(huì)覆蓋舊值。如果是新增的field,設(shè)置完成后會(huì)返回1,如果是更新已有的field,設(shè)置完成后會(huì)返回0。

HSETNX

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(1)

同樣是為指定的key中的field設(shè)置value,與HSET命令不同的是,如果field已經(jīng)存在,則不會(huì)有任何操作,直接返回0。

HSTRLEN

最早可用版本:3.2.0

時(shí)間復(fù)雜度:O(1)

返回指定key中field對(duì)應(yīng)value的字符串長(zhǎng)度,如果key或field不存在,返回0。

HVALS

最早可用版本:2.0.0

時(shí)間復(fù)雜度:O(N),N為hash的size

返回指定key的hash的所有value。如果key不存在,則會(huì)返回空列表。

總結(jié)

以上是生活随笔為你收集整理的Redis命令详解:Hashs的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。