Hash集合
Redis Hash是一个键值对集合。
Redis Hash是一个String类型的field和value的映射表,hash特别适合用于存储对象
类似Java里面的Map<String,Object>
用户ID为查找的key,存储的value用户对象包含姓名、年龄、生日等信息,Redis存储有以下三种方式:
Redis中的Hash集合就是以Hash方式来存储的(就是上图说明的第三种方式)
Hash类型对应的数据结构是两种:ziplist(压缩列表)、hashtable(哈希表)、当field-value长度较短且个数较少时,使用ziplist,否则使用hashtable
Hash常用命令:
hset <key> <field> <value>
--- 给<key>集合中添加<field>或者给<field>赋值
hget <key> <field>
--- 从<key>集合将<field> 取出
hmset <key> <field1> <value1> <field2> <value2>...
--- 批量设置hash的值
hexists <key> <field>
--- 查看哈希表key中,给定域field是否存在
hkeys <key>
--- 列出<key>集合中所有field
hvals <key>
--- 列出<key>集合中所有value
hincby <key> <field> <increment>
--- 为<key>集合中的field的值加上<increment>增量
--- 如果<field>不存在则会新建一个,字段的值被初始化为 0
---<increment> 可以为正数也可以是负数,负数相当于减少增量值
hsetnx <key> <field> <value>
--- 用于不存在的<field>赋值
--- 如果哈希表不存在,一个新的哈希表被创建并进行 hset 操作,创建后执行hsetnx操作
--- 如果字段已经存在于哈希表中,操作无效。