Redis hash是一个string类型的field和value的映射表。hash特别适合用于存储对象。Redis中每个hash最多可以存储2^32-1键值对。
可以看成具有KEY和VALUE的MAP容器。
1.Hash命令
HSET key field value
为指定key设定key,value
HMSET key field1 value1 field2 value2 ...
同时将多个键值对设置
HGET key field
获取存储在HASH中的值,根据field得到value。
HMGET key field1 field2...
获取多个field的值
HKEYS key
获取哈希表的字段
HLEN key
获取哈希表字段的数量
HGETALL key
返回HASH表中的所有键和值
HDEL key field1 field2...
删除field
[dong@localhost bin]$ ./redis-cli
127.0.0.1:6379> KEYS *
(empty list or set)
127.0.0.1:6379> HSET user1 name 'Tom'
(integer) 1
127.0.0.1:6379> HSET user1 age 18
(integer) 1
127.0.0.1:6379> HGET user1 name
"Tom"
127.0.0.1:6379> HGET user1 age
"18"
127.0.0.1:6379> HSET user1 password 'Password1' username 'UserName1'
(integer) 2
127.0.0.1:6379> HGET user1 name age password
(error) ERR wrong number of arguments for 'hget' command
127.0.0.1:6379> HMGET user1 name age password
1) "Tom"
2) "18"
3) "Password1"
127.0.0.1:6379> HLEN user1
(integer) 4
127.0.0.1:6379> hGETALL user1
1) "name"
2) "Tom"
3) "age"
4) "18"
5) "password"
6) "Password1"
7) "username"
8) "UserName1"
127.0.0.1:6379> HKEYS user1
1) "name"
2) "age"
3) "password"
4) "username"
127.0.0.1:6379> HDEL user1 name age
(integer) 2
127.0.0.1:6379>
HSETNX key field value
只有在key不存在时,设置哈希表字段的值
HINCRBY key field increment
为哈希key指定的字段的整数值加上增量increment
HINCRBYFLOAT key field increment
为哈希表key中指定字段的浮点数加上增量increment
HEXISTS key field
查看哈希表key中,指定的字段是否存在。
[dong@localhost bin]$ ./redis-cli
127.0.0.1:6379> HSET user1 age 1
(integer) 1
127.0.0.1:6379> HINCRBY user1 age 10
(integer) 11
127.0.0.1:6379> HGET user1 age
"11"
127.0.0.1:6379> HINCRBYFLOAT user1 age 11.5
"22.5"
127.0.0.1:6379> HGET user1 age
"22.5"
127.0.0.1:6379> HEXISTS user1 age
(integer) 1