Redis08——Redis五大数据类型 hash
hash
- Redis中的hash是一个键值对集合
- 同时又是一个string类型的field和value的映射表,hash特别适合用于存储对象
- 类似于java里面的Map<String,Object>
问题:如果有一个Javabean对象,在Redis中该如何存在
①用户id为key,value为Javabean序列化后的字符串
缺点:每次修改用户的某个属性,先反序列化改好后再序列化回去,开销大
②用户id+属性名作为key,属性值作为value
缺点:用户id数据冗余
③通过key(用户id)+field(属性标签)可以操作对应属性数据
优点:不需要重复存储数据
不会带来序列化和并发修改控制的问题
常用操作:
hset <key> <field> <value> |
给<key>集合中的 <field>键赋值<value> |
hget <key1> <field> |
从<key1>集合<field> 取出 value |
hmset <key1> <field1> <value1> <field2> <value2>... |
批量设置hash的值 |
hexists key <field> |
查看哈希表 key 中,给定域 field 是否存在。 |
hkeys <key> |
列出该hash集合的所有field |
hvals <key> |
列出该hash集合的所有value |
hincrby <key> <field> <increment> |
为哈希表 key 中的域 field 的值加上增量 increment |
hsetnx <key> <field> <value> |
将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在 |