新聞中心
redis是一個(gè)開(kāi)源的,先進(jìn)的key-value存儲(chǔ),屬于非關(guān)系型緩存數(shù)據(jù)庫(kù),通常被稱(chēng)為數(shù)據(jù)結(jié)構(gòu)服務(wù)器。redis一共有五種基本的數(shù)據(jù)類(lèi)型,String類(lèi)型、hash類(lèi)型、list類(lèi)型以及set(無(wú)序集合)和zset(有序集合),本篇文章為大家分享一下Hash類(lèi)型使用方法。

哈希類(lèi)型是指鍵值對(duì)里的value本身存儲(chǔ)的也是一個(gè)個(gè)的KV鍵值對(duì),類(lèi)似于python中的dict和java中的map集合。
hash_value={undefined{field1,value1},…{fieldN,valueN}}
hkey–>hvalue
hvalue{k1:v1 ,k2:v2 ,k3:v3…}
基本操作
賦值
散列操作不區(qū)分插入和更新,當(dāng)設(shè)置一個(gè)field的時(shí)候如果不存在的話表示新增,如果已經(jīng)存在的話則表示更新,之前的值會(huì)被覆蓋掉。當(dāng)設(shè)置值的時(shí)候如果field在之前不存在的話則返回1,視為新增,如果field已經(jīng)存在的話,返回0,視為更新。
hset
第一次賦值的時(shí)候因?yàn)閗1不存在,是新增field操作,返回值是1,第二次k1已經(jīng)存在了,是更新操作,返回值是0.
使用hmset一次賦多個(gè)值:
hmset
[
…]
使用hsetnx只有當(dāng)指定的field不存在時(shí)才賦值,這個(gè)是為了避免覆蓋掉已有的值:
hsetnx
返回值表示是否賦值成功,返回1表示這個(gè)field之前并不存在,此次賦值成功,返回0表示指定的field之前就已經(jīng)存在,此次賦值失敗。
取值
hget一次取一個(gè)值,hmget一次取出多個(gè)值:
hget
``hmget
[
…]
使用hgetall一次取出全部的field和value:
hgetall
用于獲取hash表中的field集合和value集合:
hkeys
``hvals
返回值是一個(gè)列表:
總結(jié)一下:
hgetall 獲取所有的field和value,組合成一個(gè)list返回``hkeys 獲取所有的key集合,相當(dāng)于java中的keySet()``hvals 獲取所有的value集合,相當(dāng)于java中的valueSet()
判斷field是否已存在
hexists用于判斷在指定的hash表中某個(gè)field是否已存在:
hexists
返回值是1或0,返回1表示指定的field已經(jīng)存在,返回0表示不存在。
獲取hash表中的field個(gè)數(shù)
使用hlen獲取指定的hash表中field的個(gè)數(shù):
hlen
field自增
使用hincrby對(duì)某個(gè)整數(shù)類(lèi)型的field一次自增某個(gè)整數(shù)量:
hincrby
刪除
要?jiǎng)h除hash表中的某個(gè)field,使用hdel:
hdel
[
…]
hdel的返回值是成功刪除的field的個(gè)數(shù)。
可以一次刪除多個(gè)filed:
返回值是2表示成功刪除了兩個(gè)field。
要?jiǎng)h除hash表本身使用del命令:
del是用于刪除key即hash表本身的,hdel是用于刪除hash表中的field的。
分享文章:Redis數(shù)據(jù)類(lèi)型:Hash使用方法
本文地址:http://m.fisionsoft.com.cn/article/dpipcij.html


咨詢(xún)
建站咨詢(xún)
