十二、Redis五大数据类型之四Hash

hash类型

1.hash类型数据的基本操作

添加 / 修改数据:hset key field value

获取数据:hget key field | hgetall key

删除数据:hdel key field field1

添加 / 修改多个数据:hmset key field value field1 value1

获取多个数据:hmget key field field1

获取表中字段数量:hlen key

获取表中是否存在某个字段:hexists key field

2. hash类型数据的扩展操作

获取hash表中所有的字段值:hkeys key

获取hash表中所有的字段值:hvals key

设置指定字段的数值增加指定范围的值:hincrby key field increment | hincrbyfloat key field increment

3. hash业务场景之购物车

此图来源于网络非自制,只是模拟购物车场景十二、Redis五大数据类型之四Hash

在上图中,我们可以看到购物车里的信息,下来咱们使用redis来对这个购物车的实现。

4.hash类型的操作配置

十二、Redis五大数据类型之四Hash

Map集合,key-map 时这个值是一个map集合! 本质和String类型没有太大区别,还是一个简单的key-vlaue!

hash变更的数据 user name age,尤其是是用户信息之类的,经常变动的信息! hash 更适合于对象的存储,String更加适合字符串存储!


##########################################################################
127.0.0.1:6379> hset myhash field1 sj # set一个具体 key-value
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> hget myhash field1 # 获取一个字段值
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> hmset myhash field1 hello field2 world # set多个 key-vlaue
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> hmget myhash field1 field2 # 获取多个字段值
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> hgetall myhash # 获取全部的数据
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> hdel myhash field1 # 删除hash指定key字段!对应的value值也就消失了!
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> hgetall myhash
十二、Redis五大数据类型之四Hash
##########################################################################
hlen

127.0.0.1:6379> flushdb
127.0.0.1:6379> hmset myhash field1 hello field2 world
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> HGETALL myhash
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> hlen myhash # 获取hash表的字段数量!
十二、Redis五大数据类型之四Hash
##########################################################################
127.0.0.1:6379> HEXISTS myhash field1 # 判断hash中指定字段是否存在!
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> HEXISTS myhash field3
十二、Redis五大数据类型之四Hash
##########################################################################
# 只获得所有field
# 只获得所有value
127.0.0.1:6379> hkeys myhash # 只获得所有field
十二、Redis五大数据类型之四Hash

127.0.0.1:6379> hvals myhash # 只获得所有value
十二、Redis五大数据类型之四Hash
##########################################################################
incr decr
127.0.0.1:6379> hset myhash field3 5 #指定增量!
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> HINCRBY myhash field3 1
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> HINCRBY myhash field3 -1
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> hsetnx myhash field4 hello # 如果不存在则可以设置
十二、Redis五大数据类型之四Hash
127.0.0.1:6379> hsetnx myhash field4 world # 如果存在则不能设置
十二、Redis五大数据类型之四Hash