1. 程式人生 > 實用技巧 >十二、Redis五大資料型別之四Hash

十二、Redis五大資料型別之四Hash

hash型別

1.hash型別資料的基本操作

新增 / 修改資料:hset key field value

獲取資料:hget key field|hgetall key

刪除資料:hdel key field field1

新增 / 修改多個數據:hmset key field value field1 value1

獲取多個數據:hmget key field field1

獲取表中欄位數量:hlen key

獲取表中是否存在某個欄位:hexists key field

2. hash型別資料的擴充套件操作

獲取hash表中所有的欄位值:hkeys key

獲取hash表中所有的欄位值:hvals key

設定指定欄位的數值增加指定範圍的值:hincrby key field increment|hincrbyfloat key field increment

3. hash業務場景之購物車

此圖來源於網路非自制,只是模擬購物車場景在這裡插入圖片描述

在上圖中,我們可以看到購物車裡的資訊,下來咱們使用redis來對這個購物車的實現。

4.hash型別的操作配置

Map集合,key-map時這個值是一個map集合! 本質和String型別沒有太大區別,還是一個簡單的key-vlaue!

hash變更的資料 user name age,尤其是是使用者資訊之類的,經常變動的資訊! hash 更適合於物件的儲存,String更加適合字串儲存!


##########################################################################
127.0.0.1:6379> hset myhash field1 sj # set一個具體 key-value

127.0.0.1:6379> hget myhash field1 # 獲取一個欄位值

127.0.0.1:6379> hmset myhash field1 hello field2 world # set多個 key-vlaue

127.0.0.1:6379> hmget myhash field1 field2 # 獲取多個欄位值


127.0.0.1:6379> hgetall myhash # 獲取全部的資料

127.0.0.1:6379> hdel myhash field1 # 刪除hash指定key欄位!對應的value值也就消失了!

127.0.0.1:6379> hgetall myhash

##########################################################################
hlen

127.0.0.1:6379> flushdb
127.0.0.1:6379> hmset myhash field1 hello field2 world

127.0.0.1:6379> HGETALL myhash

127.0.0.1:6379> hlen myhash # 獲取hash表的欄位數量!

##########################################################################
127.0.0.1:6379> HEXISTS myhash field1 # 判斷hash中指定欄位是否存在!

127.0.0.1:6379> HEXISTS myhash field3

##########################################################################
# 只獲得所有field
# 只獲得所有value
127.0.0.1:6379> hkeys myhash # 只獲得所有field

127.0.0.1:6379> hvals myhash # 只獲得所有value

##########################################################################
incr decr
127.0.0.1:6379> hset myhash field3 5 #指定增量!

127.0.0.1:6379> HINCRBY myhash field3 1

127.0.0.1:6379> HINCRBY myhash field3 -1

127.0.0.1:6379> hsetnx myhash field4 hello # 如果不存在則可以設定

127.0.0.1:6379> hsetnx myhash field4 world # 如果存在則不能設定