005_Redis的Hash数据类型
1. Hash類型是String類型的field和value的映射表, 它特別適合存儲(chǔ)對(duì)象。每個(gè)hash可以存儲(chǔ)鍵值對(duì)(40多億)。
2. 為哈希表中的字段賦值
2.1. 語法: hset key field value。
2.2. hset命令用于為哈希表中的字段賦值。如果哈希表不存在, 一個(gè)新的哈希表被創(chuàng)建并進(jìn)行hset操作。如果字段已經(jīng)存在于哈希表中, 舊值將被覆蓋。
2.3.?如果字段是哈希表中的一個(gè)新建字段, 并且值設(shè)置成功, 返回1。如果哈希表中域字段已經(jīng)存在且舊值已被新值覆蓋, 返回0。
2.4. 實(shí)例
3. 獲取哈希表中指定字段的值
3.1. 語法: hget key field。
3.2. hget命令用于返回哈希表中指定字段的值。
3.3. 返回給定字段的值。如果給定的字段或key不存在時(shí), 返回nil。
3.4. 實(shí)例
4. 同時(shí)設(shè)置多個(gè)哈希表字段值
4.1. 語法: hmset key field1 value1 [field2 value2]。
4.2. hmset命令用于同時(shí)將多個(gè)field-value(字段-值)對(duì)設(shè)置到哈希表中。此命令會(huì)覆蓋哈希表中已存在的字段。如果哈希表不存在, 會(huì)創(chuàng)建一個(gè)空哈希表, 并執(zhí)行hmset操作。
4.3. 如果命令執(zhí)行成功, 返回OK。
4.4. 實(shí)例
5. 獲取一個(gè)或多個(gè)給定字段的值
5.1. 語法: hmget key field1 [field2]。
5.2. hmget命令用于返回哈希表中一個(gè)或多個(gè)給定字段的值。如果指定的字段不存在于哈希表, 那么返回一個(gè)nil值。
5.3. 返回一個(gè)包含多個(gè)給定字段關(guān)聯(lián)值的表, 表值的排列順序和指定字段的請求順序一樣。
5.4. 實(shí)例
6. 獲取哈希表中所有字段
6.1. 語法: hkeys key。
6.2. hkeys命令用于獲取哈希表中的所有域(field)。
6.3. 返回一個(gè)包含哈希表中所有域(field)的列表。當(dāng)key不存在時(shí), 返回一個(gè)空列表。
6.4. 實(shí)例
7. 獲取哈希表中所有值
7.1. 語法: hvals key。
7.2. hvals命令返回哈希表所有值。
7.3. 返回一個(gè)包含哈希表中所有值的列表。當(dāng)key不存在時(shí), 返回一個(gè)空列表。
7.4. 實(shí)例
8. 獲取哈希表中字段的數(shù)量
8.1. 語法: hlen key。
8.2. hlen命令用于獲取哈希表中字段的數(shù)量。
8.3. 返回哈希表中字段的數(shù)量。當(dāng)key不存在時(shí), 返回0。
8.4. 實(shí)例
9. 為哈希表中不存在的字段賦值
9.1. 語法: hsetnx key field value。
9.2. hsetnx命令用于為哈希表中不存在的字段賦值。如果哈希表不存在, 一個(gè)新的哈希表被創(chuàng)建并進(jìn)行hset操作。如果字段已經(jīng)存在于哈希表中, 操作無效。
9.3. 設(shè)置成功, 返回1。如果給定字段已經(jīng)存, 沒有操作被執(zhí)行, 返回0。
9.4. 實(shí)例
10. 查看哈希表指定的字段是否存在
10.1. 語法: hexists key field。
10.2. hexists命令用于查看哈希表的指定字段是否存在。
10.3. 如果哈希表含有給定字段, 返回1。如果哈希表不含有給定字段或key不存在, 返回0。
10.4. 實(shí)例
11. 獲取哈希表所有的字段和值
11.1. 語法: hgetall key。
11.2. hgetall命令用于返回哈希表中所有的字段和值。在返回值里, 緊跟每個(gè)字段名(field name)之后是字段的值(value), 所以返回值的長度是哈希表大小的兩倍。
11.3. 返回以列表形式返回哈希表的字段及字段值。若key不存在, 返回空列表。
11.4. 實(shí)例
12. 為哈希表中整數(shù)值加上增量
12.1. 語法: hincrby key field increment。
12.2. hincrby命令用于為哈希表中的字段值加上指定增量值。增量也可以為負(fù)數(shù), 相當(dāng)于對(duì)指定字段進(jìn)行減法操作。如果哈希表的key不存在, 一個(gè)新的哈希表被創(chuàng)建并執(zhí)行hincrby命令。如果指定的字段不存在, 那么在執(zhí)行命令前, 字段的值被初始化為0。對(duì)一個(gè)儲(chǔ)存字符串值的字段執(zhí)行hincrby命令將造成一個(gè)錯(cuò)誤。本操作的值被限制在64位(bit)有符號(hào)數(shù)字表示之內(nèi)。
12.3. 返回執(zhí)行hincrby命令之后, 哈希表中字段的值。
12.4. 實(shí)例
13. 為哈希表中浮點(diǎn)數(shù)值加上增量
13.1. 語法: hincrbyfloat key field increment。
13.2. hincrbyfloat命令用于為哈希表中的字段值加上指定浮點(diǎn)數(shù)增量值。增量也可以為負(fù)數(shù), 相當(dāng)于對(duì)指定字段進(jìn)行減法操作。如果哈希表的key不存在, 一個(gè)新的哈希表被創(chuàng)建并執(zhí)行hincrbyfloat命令。如果指定的字段不存在, 那么在執(zhí)行命令前, 字段的值被初始化為0。對(duì)一個(gè)儲(chǔ)存字符串值的字段執(zhí)行hincrby命令將造成一個(gè)錯(cuò)誤。
13.3. 返回執(zhí)行hincrbyfloat命令之后, 哈希表中字段的值。
13.4. 實(shí)例
14. 刪除一個(gè)或多個(gè)哈希表字段
14.1. 語法: hdel key field1 [field2]。
14.2. hdel命令用于刪除哈希表key中的一個(gè)或多個(gè)指定字段, 不存在的字段將被忽略。
14.3. 返回被成功刪除字段的數(shù)量, 不包括被忽略的字段。
14.4. 實(shí)例
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的005_Redis的Hash数据类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 017_Jedis的String数据类型
- 下一篇: 018_Jedis的Hash数据类型