[toc]
redis数据类型 hash 字典
hash(字典)简介
简介: 键值对集合,即编程语言 中的map类型
可以存储的值: 适合存储对象,并且可以像数据库中的update一样,只修改某一项的属性值
操作: 添加、获取、移除单个键值对,获取所有键值对,检查某个键是否存在
应用场景: 存储、读取、修改用户属性
范围:Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)
使用示例:
#定义一个哈希man,有名字、年龄、体重描述信息
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
127.0.0.1:6379> HGETALL man
1) "name"
2) "xiaoming"
3) "age"
4) "18"
5) "weight"
6) "60kg"
redis哈希常用命令
hdel key field1 [field2]
含义:删除一个或多个哈希表字段
示例:
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
127.0.0.1:6379> HGETALL man
1) "name"
2) "xiaoming"
3) "age"
4) "18"
5) "weight"
6) "60kg"
#删除哈希中的weight字段
127.0.0.1:6379> HDEL man weight
(integer) 1
127.0.0.1:6379> HGETALL man
1) "name"
2) "xiaoming"
3) "age"
4) "18"
hexists key field
含义:查看哈希表key中,指定的字段是否存在
示例:
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
127.0.0.1:6379> HEXISTS man name
(integer) 1
127.0.0.1:6379> HEXISTS man sex
(integer) 0
hget key fidle
含义:获取存储在哈希表中指定字段的值
示例:
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
127.0.0.1:6379> HGET man name
"xiaoming"
hincrby key fidle increment
含义:为哈希表key中的指定字段的整数值加上增量 increment
示例:
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
127.0.0.1:6379> HINCRBY man age 2
(integer) 20
127.0.0.1:6379> HGET man age
"20"
hincrbyfloat key field increment
含义:为哈希表key中的指定字段的浮点数值加上增量 increment
示例:
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
127.0.0.1:6379> HINCRBYFLOAT man age 0.5
"18.5"
127.0.0.1:6379> HGET man age
"18.5"
hkeys key
含义:获取所有哈希表中的字段
示例:
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
127.0.0.1:6379> HKEYS man
1) "name"
2) "age"
3) "weight"
hvals key
含义:获取哈希表中所有值
示例:
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
127.0.0.1:6379> HVALS man
1) "xiaoming"
2) "18"
3) "60kg"
hlen key
含义:获取哈希表中字段的数量
示例:
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
127.0.0.1:6379> HLEN man
(integer) 3
hmget key field1 [field2]
含义:获取所有给定字段的值
示例:
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
127.0.0.1:6379> HMGET man name age
1) "xiaoming"
2) "18"
hmset key field1 value1 [field2 value2]
含义:同时将多个field-value (域-值)对设置到哈希表key中
示例:
127.0.0.1:6379> HMSET man name "xiaoming" age 18 weight "60kg"
OK
hset key field value
含义:将哈希表key中的字段field的值设为 value
示例:
127.0.0.1:6379> HSET man name "xiaoming"
(integer) 1
hsetnx key field value
含义:只有在字段field不存在时,设置哈希表字段的值
示例:
127.0.0.1:6379> HSETNX hehe name "hehe"
(integer) 1
scan cursor [MATCH pattern] [COUNT count]
含义:用于迭代当前数据库中的数据库键
示例:
sscan
含义:用于迭代集合键中的元素
示例:
hscan
含义:用于迭代哈希键中的键值对
示例:
zscan
含义:用于迭代有序集合中的元素(包括元素成员和元素分值)
示例: