溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

redis之hashes類型及操作

發(fā)布時(shí)間:2020-06-20 15:40:41 來(lái)源:網(wǎng)絡(luò) 閱讀:654 作者:乾坤刀 欄目:MySQL數(shù)據(jù)庫(kù)

hashes類型及操作
Redis hash是一個(gè)string類型的field和value的映射表.它的添加、刪除操作都是O(1)(平均)。hash特別適合用于存儲(chǔ)對(duì)象。相較于將對(duì)象的每個(gè)字段存成單個(gè)string類型。將一個(gè)對(duì)象存儲(chǔ)在hash類型中會(huì)占用更少的內(nèi)存,并且可以更方便的存取整個(gè)對(duì)象。省內(nèi)存的原因是新建一個(gè)hash對(duì)象時(shí)開始是用zipmap(又稱為small hash)來(lái)存儲(chǔ)的。這個(gè)zipmap其實(shí)并不是hash table,但是zipmap相比正常的hash實(shí)現(xiàn)可以節(jié)省不少hash本身需要的一些元數(shù)據(jù)存儲(chǔ)開銷。盡管zipmap的添加,刪除,查找都是O(n),但是由于一般對(duì)象的field數(shù)量都不太多。所以使用zipmap也是很快的,也就是說(shuō)添加刪除平均還是O(1)。如果field或者value的大小超出一定限制后,Redis會(huì)在內(nèi)部自動(dòng)將zipmap替換成正常的hash實(shí)現(xiàn). 這個(gè)限制可以在配置文件中指定
hash-max-zipmap-entries 64 #配置字段最多64個(gè)
hash-max-zipmap-value 512 #配置value最大為512字節(jié)

hset
設(shè)置hash field為指定值,如果key不存在,則先創(chuàng)建。
如:hset person name david
hsetnx
設(shè)置hash field為指定值,如果key不存在,則先創(chuàng)建。如果field已經(jīng)存在,返回0,nx是not exist的意思。
hmset
同時(shí)設(shè)置hash的多個(gè)field。
hget
獲取指定的hash field。
hmget
獲取全部指定的hash filed。
如:hmget person name age
hincrby
指定的hash filed 加上給定值。
hexists
測(cè)試指定field是否存在。
如:hexists person age
hlen
返回指定hash的field數(shù)量。
hdel
刪除對(duì)象中field
如:hdel person name
hkeys
返回hash的所有field。
如:hkeys person
hvals
返回hash的所有value。
如:hvals person
hgetall
獲取某個(gè)hash中全部的filed及value。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI