国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > Redis > 正文

Redis中散列類(lèi)型的常用命令小結(jié)

2020-03-17 12:40:29
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

Redis散列類(lèi)型

Redis是采用字典結(jié)構(gòu)以鍵值對(duì)的形式存儲(chǔ)數(shù)據(jù)的,而散列類(lèi)型(hash)的鍵值也是一種字典結(jié)構(gòu),其存儲(chǔ)了字段和字段值的映射,但字段值只能是字符串,不支持其他數(shù)據(jù)類(lèi)型,也就是說(shuō),散列類(lèi)型不能嵌套其他的數(shù)據(jù)類(lèi)型。一個(gè)散列類(lèi)型鍵可以包含至多2^32-1個(gè)字段。

除了散列類(lèi)型,Redis的其他數(shù)據(jù)類(lèi)型同樣不支持?jǐn)?shù)據(jù)類(lèi)型嵌套。比如集合類(lèi)型的每個(gè)元素只能是字符串,不能是一個(gè)集合或者散列表等。

散列類(lèi)型適合存儲(chǔ)對(duì)象:使用對(duì)象類(lèi)別和ID構(gòu)成建名,使用字段表示對(duì)象的屬性,而字段值存儲(chǔ)屬性值。例如要存儲(chǔ)ID為2的汽車(chē)對(duì)象,可以分別使用名為color、name和price的三個(gè)字段來(lái)存儲(chǔ)該汽車(chē)的顏色、名稱(chēng)和價(jià)格。

redis,散列類(lèi)型,redis常用命令總結(jié),redis散列

1、基本命令

例如現(xiàn)在要存儲(chǔ)ID為1的文章,分別有title、author、time、content

則鍵為post:1,字段分別為title、author、time、content,值分別為“the first post”、“me”、“2014-03-04”、“This is my first post.”,存儲(chǔ)如下

redis 127.0.0.1:6379> hmset post:1 title "the first post" author "JoJo" time 2016/08/25 content "this is my first post"OK

這里使用的是hmset命令,具體散列的基本賦值命令如下:

hset key field value   #例如hset post:2 title “second post”

hget key field             #例如hget post:2 title,獲取id為2的post的title值

hmset key field value [field value ...]  #這個(gè)同上,批量存值

hmget key field [field ...]                      #批量取值,取得列表

例:

redis 127.0.0.1:6379> hmget post:1 time author1) "2016/08/25"2) "JoJo"

hgetall key                  #取得key所對(duì)應(yīng)的所有鍵值列表,這里給出個(gè)例子

redis 127.0.0.1:6379> hgetall post:11) "title"2) "the first post"3) "author"4) "JoJo"5) "time"6) "2016/08/25"7) "content"8) "this is my first post"

 2、判斷是否存在

hexists key field

如果存在返回1,否則返回0(如果鍵不存在也返回0)。

3、當(dāng)字段不存在時(shí)賦值

hsetnx key field value

這個(gè)和hset的區(qū)別就是如果字段存在,這個(gè)命令將不執(zhí)行任何操作,但是這里有一個(gè)區(qū)別就是Redis提供的這些命令都是原子操作,不會(huì)產(chǎn)生數(shù)據(jù)不一致問(wèn)題。

例:

redis 127.0.0.1:6379> hexists post:1 time(integer) 1  //判斷是存在time字段的redis 127.0.0.1:6379> hsetnx post:1 time 2016/08/26(integer) 0  //不存在的話,設(shè)置time,存在的話返回0,值不變,原始值redis 127.0.0.1:6379> hget post:1 time"2016/08/25"redis 127.0.0.1:6379> hsetnx post:1 age 23(integer) 1   //不存在age字段,返回1,并設(shè)置age字段redis 127.0.0.1:6379> hget post:1 age"23"

4、增加數(shù)字

hincrby key field number

這里就和incry命令類(lèi)似了。

例:

redis 127.0.0.1:6379> hincrby post:1 age 2(integer) 25

5、刪除字段

hdel key field [field ...]

刪除字段,一個(gè)或多個(gè),返回值是被刪除字段的個(gè)數(shù)。

6、其他命令

hkeys key    #獲取字段名

hvals key    #獲取字段名

示例如下:

redis 127.0.0.1:6379> hkeys post:11) "title"2) "author"3) "time"4) "content"5) "age"redis 127.0.0.1:6379> hvals post:11) "the first post"2) "JoJo"3) "2016/08/25"4) "this is my first post"5) "25"

最后還有一個(gè)就是獲取字段數(shù)量的命令:

hlen key

返回字段的數(shù)量

redis 127.0.0.1:6379> hlen post:1(integer) 5

總結(jié)

以上就是Redis中散列類(lèi)型常用命令的全部?jī)?nèi)容了,希望能對(duì)大家的學(xué)習(xí)或者工作帶來(lái)一定的幫助,如果有疑問(wèn)大家可以留言交流。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到Redis頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 白山市| 达孜县| 桐柏县| 德安县| 黔西| 科技| 滨州市| 博爱县| 杭锦后旗| 广宗县| 什邡市| 泰顺县| 泽库县| 虎林市| 武川县| 余江县| 东平县| 同德县| 会宁县| 铁岭市| 沾化县| 通州区| 讷河市| 饶河县| 和静县| 阳西县| 定陶县| 神木县| 大足县| 通化市| 万州区| 顺昌县| 铁力市| 莱西市| 疏附县| 无极县| 宣武区| 乌鲁木齐县| 海南省| 广汉市| 锡林郭勒盟|