Redis08——Redis五大数据类型 hash

hash

  1. Redis中的hash是一个键值对集合
  2. 同时又是一个string类型的field和value的映射表,hash特别适合用于存储对象
  3. 类似于java里面的Map

问题:如果有一个Javabean对象,在Redis中该如何存在

①用户id为key,value为Javabean序列化后的字符串

  缺点:每次修改用户的某个属性,先反序列化改好后再序列化回去,开销大

   Redis08——Redis五大数据类型 hash_第1张图片

 

②用户id+属性名作为key,属性值作为value

  缺点:用户id数据冗余

   Redis08——Redis五大数据类型 hash_第2张图片

 ③通过key(用户id)+field(属性标签)可以操作对应属性数据

  优点:不需要重复存储数据

     不会带来序列化和并发修改控制的问题

   Redis08——Redis五大数据类型 hash_第3张图片

 常用操作:

hset    

集合中的  键赋值

hget     

集合 取出 value

hmset   ...  

批量设置hash的值

hexists key 

查看哈希表 key 中,给定域 field 是否存在。

hkeys   

列出该hash集合的所有field

hvals    

列出该hash集合的所有value

hincrby  

为哈希表 key 中的域 field 的值加上增量 increment

hsetnx  

将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在

 

你可能感兴趣的:(Redis08——Redis五大数据类型 hash)