redis (四)散列类型

到底什么是散列类型那,真TMD专业术语。


先看下这个

{

"car" :  {'price':100,'name':'Jeep',‘color’:'red'} 

"car2" :  {'price':200,'name':'BMW',‘color’:'blue','who':'me':} 

}

"car" :  {'price':100,'name':'Jeep',‘color’:'red'}  TMD,这不跟python里的数据类型嵌套一样吗,字典里可以有字典


我们说过redis里一个数据库就是一个字典,所以外面的大括号就是数据库,里面就是你存储的值。

散列原来就是用一个key 代表一个字典,艹,专业术语害死人。

NOTE:

形式虽然是上面那样,不过散列有其特殊性,不仅是散列类型,还有其他的类型。特殊性:

"car" :  {'price':100,'name':'Jeep',‘color’:'red'}    在redis里  ,这里面的 100   jeep   red 只能是字符串,


这种就是错误的,在python是正确定的,也是和python字典的区别

"car" :  {'price':[  ],'name':{   },‘color’:'red'}


HSET key  field value    #key   散列赋值 (更新也是此命令,为什么?字典的特性,存在就替换你)

redis 127.0.0.1:6379> hset car price 100
(integer) 1
redis 127.0.0.1:6379> hset car name jeep
(integer) 1
redis 127.0.0.1:6379> hset car color red
(integer) 1

HGET key field               #获取key  散列值得

redis 127.0.0.1:6379> hget car name
"jeep"
redis 127.0.0.1:6379> hget car price
"100"
redis 127.0.0.1:6379> hget car color
"red"



HSET key field1 value1

HSET key filed2 value2

替换成

HMSET    key    field1 value1      field2 value2   #同时设置多个字段的值

redis 127.0.0.1:6379> HMSET car price 500 name 500 color 500
OK



HMGET    key    field1   field2           #相应获取多个字段的值

redis 127.0.0.1:6379> HMGET car price name color
1) "500"
2) "500"
3) "500"


HGETALL  key               #获取key代表的所有field和值

redis 127.0.0.1:6379> hgetall car
1) "price"
2) "500"
3) "name"
4) "500"
5) "color"
6) "500"


HEXISTS  key field       #判断字段是否存在 1代表存在,0代表不存在

redis 127.0.0.1:6379> hexists car price
(integer) 1

redis 127.0.0.1:6379> hexists car pri
(integer) 0

HSETNX key   field value                      #当字段不存在时赋值,存在的就不管了

redis 127.0.0.1:6379> hsetnx car pri 500
(integer) 1
redis 127.0.0.1:6379> hsetnx car pri 500
(integer) 0  # 看这里,有了就返回0


HDEL  key  field   [field  ....]                             #删除一个或多个字段

redis 127.0.0.1:6379> hdel car pri
(integer) 1
redis 127.0.0.1:6379> hget car pri
(nil)

redis 127.0.0.1:6379> hdel car price name
(integer) 2
redis 127.0.0.1:6379> hgetall car
1) "color"
2) "500"


HKEYS key           #所有的field

redis 127.0.0.1:6379> hkeys car
1) "color"
2) "name"
3) "price"

HVALS key            #所有的value

redis 127.0.0.1:6379> hvals car
1) "red"
2) "bwm"
3) "500"


HLEN           key              #获得field的数量

redis 127.0.0.1:6379> hlen car
(integer) 3

转载于:https://my.oschina.net/012345678/blog/280767

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值