Redis
是采用字典结构以键值对形式存储数据。而散列类型也是一种字典结构,它存储了字段和字段值的映射,但是字段值只能是字符串,不支持其它的类型数据。散列类型适合存储对象。
比如一个汽车对象,汽车有颜色,名称,价格等属性。那么我们就可以使用散列类型存储该对象。
键名:cart:1 字段->值: color->blue,name->bmw,price->40w
语法:
HSET key filed vlaue //设置单个值
HGET key field //获取单个字段值
HMSET key field value [field value….] //同时设置多个字段值
HMGET key filed[field…] //同时获取多个字段值
HGETALL key //获取所有
HDEL key field //删除字段
HSET 命令会不区分插入操作还是更新操作,当执行的是插入操作的时候结果会返回1,当执行的是更新操作的时候,返回的是0。键本身如果不存在,也会自动创建。
Redis每个键都属于一个明确的数据类型
语法示例:
设置car对象color属性
HSET car color blue
设置car对象name属性
HSET car name bmw
获取name属性
HGET car name
设置多个字段属性
HMSET car color blue name bmw
获取多个字段
HMGET car color name
获取对象所有字段
HGETALL car
结果示例:
1) “name”
2) “bmw”
3) “color”
4) “blue”
使用HGETAll返回的结果是这样的
删除字段
HDEL car name
判断字段是否存在
HEXISTS car name
当字段不存在时赋值
HSETNX car name bms
如果字段不存在则赋值,存在则不操作。
数字字段增加
HINCRBY key field increment
散列类型不存在INCR方法,所以只能通过这个命令实现。
只获取字段名或者字段值
HKEYS car
HVALs car
r`