redis hash型別資料常用命令總結
hash是一種資料結構,一般翻譯做「雜湊」,也有直接音譯為「雜湊」。redis hash 是乙個string型別的field和value的對映表。它特別適合用於儲存物件。同將物件的每個欄位存成單個string型別,儲存為hash型別會占用更少的記憶體,並且方便的訪問整個物件。
下面是關於hash型別儲存的一些常用方法(命令):
1,hset 命令:
hset 將hash表中key 的 field域設定為值value。如果key值不存在,操作成功後返回1,如果key值已經存在,則覆蓋原來的值,成功後返回0。
[plain]
redis 127.0.0.1:6379> hset user name 'zhangsan' # 設定值為zhangsan
(integer) 1
redis 127.0.0.1:6379> hset user name 'lisi' # 將值覆蓋為lisi
(integer) 0
redis 127.0.0.1:6379>
2,hget 命令:
hget 返回hash表中指定key的field的值。
[plain]
redis 127.0.0.1:6379> hget user name
"lisi"
3,hsetnx 命令:
hsetnx 當且緊當filed域不存在時,設定值為value。如果該域不存在,返回1,如果該域已經存在,則不會執行操作,且返回0。
[plain]
redis 127.0.0.1:6379> hget user name
"zhangsna"
redis 127.0.0.1:6379> hsetnx user name 'lisi'
(integer) 0 # 將name域的值設定為lisi時操作失敗,因為name域已經存在
redis 127.0.0.1:6379> hsetnx user age 22 # 將age域的值設定為22,操作成功,應為age域不存在
(integer) 1
redis 127.0.0.1:6379> hget user name # 取出name的值,並沒有被修改
"zhangsna"
redis 127.0.0.1:6379> hget user age
"22"
redis 127.0.0.1:6379>
4,hmset 命令:
hmset [ ...] 同時將多個「域-值」對儲存在key鍵中,如果key不存在會自動建立,如果field已經存在,則會覆蓋原來的值。操作成功後返回值ok。
[plain]
redis 127.0.0.1:6379> hmset product name 'computer' price '3200' size '14inch'
ok
5,hmget 命令:
hmget [....] 返回hash表中key的乙個或者多個域值。如果給定的網域名稱稱在此hash表中不存在,則返回nil。
[plain]
redis 127.0.0.1:6379> hmget product name price size contact
1) "computer" # name的值
2) "3200" # price的值
3) "14inch" # size的值
4) (nil) # contact的值在hash表中不存在,返回nil
6,hgetall 命令:
hgetall 返回hash表中key的所有域的值。
[plain]
redis 127.0.0.1:6379> hgetall product
1) "name"
2) "computer"
3) "price"
4) "3200"
5) "size"
6) "14inch"
6,hlen 命令:
hlen 返回hash表中key中所有域的總數。當key值不存在時,返回0.
[plain]
redis 127.0.0.1:6379> hlen product
(integer) 3 # product中域的數量為3
redis 127.0.0.1:6379> hlen amimal
(integer) 0 # 未定義amimal,所以返回的是0
7,hexists 命令:
hexists 檢視hash表中,給定key的域field是否存在。如果存在,則返回1,如果field不存在或者是key也不存在,返回0。
[plain]
redis 127.0.0.1:6379> hexists product name
(integer) 1 # product中存在name域
redis 127.0.0.1:6379> hexists product contact
(integer) 0 # product中不存在contact域
8,hkeys 命令:
hkeys 返回所有hash表中的key的所有域。
[plain]
redis 127.0.0.1:6379> hkeys product
1) "name"
2) "price"
3) "size"
redis 127.0.0.1:6379> hkeys amimal
(empty list or set)
redis 127.0.0.1:6379>
9, hvals 命令:
hvals 返回所有hash表中的key的所有值。
[plain]
redis 127.0.0.1:6379> hvals product
1) "computer"
2) "3200"
3) "14inch"
redis 127.0.0.1:6379> hvals amimal
(empty list or set)
10, hincrby 命令:
hincrby 為雜湊表 key 中的域 field 的值加上增量 increment 。增量也可以為負數,相當於對給定域進行減法操作。如果 key 不存在,乙個新的雜湊表被建立並執行 hincrby 命令。如果域 field 不存在,那麼在執行命令前,域的值被初始化為 0 。
[plain]
redis 127.0.0.1:6379> hincrby product price 200
(integer) 3400 # price增加200
redis 127.0.0.1:6379> hincrby product final 3200
(integer) 3200 # 域final本不存在,初始化為0,然後增加3200
redis 127.0.0.1:6379> hincrby product price -100
(integer) 3300 # price減去100
11,hdel 命令:
hdel [...] 刪除hash表中key的乙個或者多個域的值。如果指定的field不存在,則忽略操作。
[plain]
redis 127.0.0.1:6379> hgetall product
1) "name"
2) "computer"
3) "price"
4) "3300"
5) "size"
6) "14inch"
7) "final"
8) "3200"
redis 127.0.0.1:6379> hdel product size
(integer) 1
redis 127.0.0.1:6379> hgetall product
1) "name"
2) "computer"
3) "price"
4) "3300"
5) "final"
6) "3200"
redis 127.0.0.1:6379> hdel product final price
(integer) 2
redis 127.0.0.1:6379> hgetall product
1) "name"
2) "computer"
Redis hash資料型別
1.hash型別?在redis中,hash是乙個鍵值 key value 對集合。簡單來講就是field和value的對映表,比較適合於儲存物件。hash的儲存用法 在這邊,如果你輸入的是漢語,想想也就知道我們在底層中儲存中,存到是編碼後的資料。2.常見的hash操作指令命令 解釋hdel key ...
Redis Hash型別資料常用命令總結
redis hash型別資料常用命令總結 hash是一種資料結構,一般翻譯做 雜湊 也有直接音譯為 雜湊 redis hash 是乙個string型別的field和value的對映表。它特別適合用於儲存物件。同將物件的每個欄位存成單個string型別,儲存為hash型別會占用更少的記憶體,並且方便的...
Redis Hash型別資料初次使用
redis是一種非關係型資料庫 not only sql nosql,儲存鍵值對,讀寫硬碟的速度很快 與其他nosql相比,redis支援更多種類的資料型別 如,字串列表 字串集合以及雜湊表等 來自wiki pedia redis version 2.8.13 os linux 應用場景 儲存ses...