redis学习(3)—操作hash类型命令

1、什么是redis的hash数据结构
redis的hash数据结构,其实就是string的升级版,它把string数据结构的key/value,中的value类型升级为hash(和java中的hash一样)
Map<String, HashMap<String,String>> hash = new HashMap<String, HashMap<String,String>>();
也就是说value变成了一个hashmap

2、每个hash的存储大小:可以存储2的(32-1)次方的键值对(40多亿个)

3、存储java对象
key为对象名称,value为对象的<属性名称,属性的值>
只能存简单的pojo类,类属性都是string类型的

4、HSET命令
将哈希表key中的字段field的值设置为value
语法:HSET key field value
必选参数说明
HSET:命令
key:待设置的key
field:hashmap的key
value:hashmap的value

5、HGET命令
获取存储在哈希表中指定字段的值
语法:HGET key field
必选参数说明
HGET:命令
key:待查询的key
field:hashmap的key

6、HMSET命令
同时将多个field-value键值对设置到哈希表key中
语法:HMSET key field1 value1 [field2 value2]
必选参数说明
HMSET:命令
key:待设置的key
field1:hashmap的key
value1:hashmap的value

7、HMGET命令
获取所有给定字段的值
语法:HMGET key field1 [field2]
必选参数说明
HMGET:命令
key:待获取值的key
field1:hashmap的key

8、HKEYS命令
获取指定hash中所有field的值
语法:HKEYS key
必选参数说明
HKEYS:命令
key:待获取值的key

9、HVALS命令
获取指定hash中所有value的值
语法:HVALS key
必选参数说明
HVALS:命令
key:待获取值的key

10、HGETALL命令
获取指定hash中所有field、value的值
语法:HGETALL key
必选参数说明
HGETALL:命令
key:待获取值的key

11、HLEN命令
获取指定hash中元素个数
语法:HLEN key
必选参数说明
HLEN:命令
key:待获取值的key

12、HINCRBY命令
给指定field对应的value值加上data数值
语法:HINCRBY key field data (整型)
必选参数说明
HINCRBY:命令
key:待增加值的key
field:hashmap的key

13、HINCRBYFLOAT命令
给指定field对应的value值加上data数值
语法:HINCRBYFLOAT key field data (浮点数)
必选参数说明
HINCRBYFLOAT:命令
key:待增加值的key
field:hashmap的key

14、HEXISTS命令
检查指定的field是否存在
语法:HEXISTS key field
必选参数说明
HEXISTS:命令
key:待检查的key
field:hashmap的key

15、HDEL命令
删除一个或多个哈希表字段
语法:HDEL key field1 [field2 field3]
必选字段说明
HDEL:命令
key:待删除哈希表的key
field1:待删除字段

16、redis存储java对象string和hash结构的区别
string的存储通常用在频繁读操作,它的存储格式是json,即把java对象转换为json,然后存入redis
hash的存储场景应用在频繁写操作,当对象的某个属性频繁修改时,不适用string+json的数据结构,因为不灵活,每次修改都需要把整个对象转换为json存储
如果采用hash,就可以针对某个属性单独修改,不用序列化去修改整个对象。例如,商品的库存、价格、关注数、评价数经常变动时,就使用hash存储结果