Hash(哈希)
Map集合,是以key-map的形式存儲(chǔ)數(shù)據(jù)串纺,本質(zhì)和string沒有太大的區(qū)別
一.基本命令
1.存儲(chǔ)丽旅,查看數(shù)據(jù)
myredis:0>hset h1 work student #set一個(gè)具體的key-value
"1"
myredis:0>hget h1 work #獲取一個(gè)字段的值
"student"
myredis:0>hmset h1 name xiaoyu age 12 six men #set多個(gè)具體的key-value
"OK"
myredis:0>hgetall h1 #獲取全部的數(shù)據(jù)
1) "name"
2) "xiaoyu"
3) "age"
4) "12"
5) "six"
6) "men"
##########################################################################
2.刪除
myredis:0>hgetall h1
1) "name"
2) "xiaoyu"
3) "age"
4) "12"
5) "six"
6) "men"
7) "work"
8) "student"
myredis:0>hdel h1 work #刪除指定key中的字段,同時(shí)刪除key中字段的元素
"1"
myredis:0>hgetall h1
1) "name"
2) "xiaoyu"
3) "age"
4) "12"
5) "six"
6) "men"
##########################################################################
3.查看集合長(zhǎng)度
myredis:0>hlen h1 #查看集合字段個(gè)數(shù)
"3"
##########################################################################
4.判斷集合中字段是否存在
myredis:0>hexists h1 name
"1"
myredis:0>hexists h1 lastname
"0"
##########################################################################
5.只獲得所有的字段(field),只獲得所有的值(value)
myredis:0>hkeys h1 #只獲得h1這個(gè)key中所有的字段field
1) "name"
2) "age"
3) "six"
myredis:0>hvals h1 #只獲得h1這個(gè)key中所有的value
1) "xiaoyu"
2) "12"
3) "men"
##########################################################################
6.字段的值也可以自增纺棺,判斷是否存在數(shù)據(jù)榄笙,如果有則不新增,如果沒有則新增
myredis:0>hincrby h1 age 1 #指定增量
"13"
myredis:0>hincrby h1 age -1
"12"
myredis:0>hgetall h1
1) "name"
2) "xiaoyu"
3) "age"
4) "12"
5) "six"
6) "men"
myredis:0>hsetnx h1 name xiao #如果key中字段存在數(shù)據(jù)祷蝌,則不創(chuàng)建數(shù)據(jù)
"0"
myredis:0>hsetnx h1 lastname xiao ##如果key中字段不存在數(shù)據(jù)茅撞,則創(chuàng)建數(shù)據(jù)
"1"
二.總結(jié)
- Hash更適合存儲(chǔ)對(duì)象信息,經(jīng)常變動(dòng)的數(shù)據(jù)巨朦。
- 比如用戶對(duì)象
我們存儲(chǔ)用戶id為1的數(shù)據(jù)米丘,按照下面類似存儲(chǔ)就可以了
- 比如用戶對(duì)象
hmset user:1 name xiaoyu age 14 six 男
myredis:0>hgetall user:1
1) "name"
2) "xiaoyu"
3) "age"
4) "14"
5) "six"
6) "男"
- String更加適合存儲(chǔ)字符串?dāng)?shù)據(jù)