Redis08——Redis五大数据类型 hash

hash

  1. Redis中的hash是一个键值对集合
  2. 同时又是一个string类型的field和value的映射表,hash特别适合用于存储对象
  3. 类似于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 不存在

原文地址:https://www.cnblogs.com/zly123/p/11731320.html