- 为什么使用Hash类型 假设有User对象要存储到Redis中,User对象有id,username、password、age、name等属性,使用String数据类型,存储的过程如下:

如果是使用这种存储方式的话,我每次更新一个属性

需要在控制台输入所有属性及其对应的属性值,影响效率,同时会造成资源浪费
2.redis hash 介绍
hash叫散列类型,它提供了字段和字段值的映射。字段值只能是字符串类型,不支持散列类型、集合类型等其它类型。如下:

3.相关命令
3.1 赋值
hset key field value(一次只能设置一个字段值,field代表字段)

hset命令不区分插入和更新操作,当执行插入操作时HSET命令返回1,当执行更新操作时返回0。

hmset key field value [field value …] (一次设置多个字段值)

hsetnx key field value(当字段不存在时赋值,类似HSET,区别在于如果字段存在,该命令不执行任何操作)

user已经存在,不给赋值,username还是desir


user1不存在,创建并赋值

主要插入成功返回1,插入对象已存在返回0
3.2 取值
hget key field(一次只能获取一个字段值)

hmget key field [field …] (一次可以获取多个字段值)

hgetall key(获取所有字段)

3.3 删除字段
hdel key field [field …](可以删除一个或多个字段,返回值是被删除的字段个数)

3.4 增加数字
hincrby key field increment(字段值增加指定increment,字段值必须是整数)

3.5 判断字段是否存在
hexists key field(存在返回1,不存在返回0)

3.6 只获取字段名或字段值
hkeys key(只获取字段名)
hvals key(只获取字段值)

3.6 只获取字段数量
hlen key

- 应用 用来存储包装类的数据信信。例如存储商品信息

存储商品信息

获取商品信息

















