当前位置 博文首页 > atomatom98的博客:Redis数据库中Hash哈希的介绍,常用命令和应
问题:有一个人叫小明,他的信息如下,现在想要把他的信息存在redis中:
HSET KEY FIELD VALUE
--为指定的KEY,设定FILD/VALUE
HMSET KEY FIELD VALUE [FIELD1,VALUE1]
--同时将多个 field-value (域-值)对设置到哈希表 key 中
此处我们使用第二个语句,将这四个字段写入进student:1这个hash(一个map)
127.0.0.1:6379> hmset student:1 name xiaoming age 22 sex male school bupt
OK
HGET KEY FIELD //获取存储在HASH中的值,根据FIELD得到VALUE
HMGET key field[field1] //获取key所有给定字段的值
HGETALL key //返回HASH表中所有的字段和值
HKEYS key //获取所有哈希表中的字段
HLEN key //获取哈希表中字段的数量
假如我现在要获取小明的学校信息:
127.0.0.1:6379> hmget student:1 school
1) "bupt"
HDEL KEY field1[field2] //删除一个或多个HASH表字段
HSETNX key field value
//只有在字段 field 不存在时,设置哈希表字段的值
HINCRBY key field increment
//为哈希表 key 中的指定字段的整数值加上增量 increment 。
HINCRBYFLOAT key field increment
//为哈希表 key 中的指定字段的浮点数值加上增量 increment 。
HEXISTS key field
//查看哈希表 key 中,指定的字段是否存在
例如现在想要把小明的年龄加十岁:
127.0.0.1:6379> Hincrby student:1 age 10
(integer) 32
127.0.0.1:6379> hmget student:1 age
1) "32"
Hash的应用场景:(存储一个用户信息对象数据)
hash是最接近关系数据库结构的数据类型,可以将数据库一条记录或程序中一个对象转换成hashmap存放在redis中。
用户ID为查找的key,存储的value用户对象包含姓名,年龄,生日等信息,如果用普通的key/value结构来存储,主要有以下2种存储方式:
Redis提供的Hash很好的解决了这个问题,Redis的Hash实际是内部存储的Value为一个HashMap,并提供了直接存取这个Map成员的接口
cs