新聞中心
hashes類型及操作
Redis hash是一個(gè)string類型的field和value的映射表.它的添加、刪除操作都是O(1)(平均)。hash特別適合用于存儲對象。相較于將對象的每個(gè)字段存成單個(gè)string類型。將一個(gè)對象存儲在hash類型中會(huì)占用更少的內(nèi)存,并且可以更方便的存取整個(gè)對象。省內(nèi)存的原因是新建一個(gè)hash對象時(shí)開始是用zipmap(又稱為small hash)來存儲的。這個(gè)zipmap其實(shí)并不是hash table,但是zipmap相比正常的hash實(shí)現(xiàn)可以節(jié)省不少hash本身需要的一些元數(shù)據(jù)存儲開銷。盡管zipmap的添加,刪除,查找都是O(n),但是由于一般對象的field數(shù)量都不太多。所以使用zipmap也是很快的,也就是說添加刪除平均還是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
測試指定field是否存在。
如:hexists person age
hlen
返回指定hash的field數(shù)量。
hdel
刪除對象中field
如:hdel person name
hkeys
返回hash的所有field。
如:hkeys person
hvals
返回hash的所有value。
如:hvals person
hgetall
獲取某個(gè)hash中全部的filed及value。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前名稱:redis之hashes類型及操作-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://www.dlmjj.cn/article/dggcse.html