Redis五种数据结构之Hash(哈希) 常用函数及案例
Redis五种数据结构分别是:
- String: Key-Value(set key value/get key)
- Hash: key-filedValue(Map,即key对应Map)
- List: 有序,可重复
- Set: 无序,不可重复
- SortedSet(zset): 有序,不可重复
Hash常用函数及案例
hset/hget/hmset/hmget/hgetall/hdel/hlen
hset:写入
hmset:批量写入
hget:获取
hmget:批量获取
hgetall:直接获取全部
hdel:删除hash中某个键值对
hlen:获取hashsize
hset+hget
127.0.0.1:6379> hset user id 11
(integer) 1
127.0.0.1:6379> hget user id
"11"
127.0.0.1:6379> hset user age 12
(integer) 1
127.0.0.1:6379> hset user name lucy
(integer) 1
127.0.0.1:6379> hgetall user
1) "id"
2) "11"
3) "age"
4) "12"
5) "name"
6) "lucy"
hmset+hmget+hgetall
127.0.0.1:6379> hmset user school bridge weight 200
OK
127.0.0.1:6379> hgetall user
1) "id"
2) "11"
3) "age"
4) "12"
5) "name"
6) "lucy"
7) "school"
8) "bridge"
9) "weight"
10) "200"
127.0.0.1:6379> hmget user id age name
1) "11"
2) "12"
3) "lucy"
hdel+hlen
127.0.0.1:6379> HLEN user
(integer) 5
127.0.0.1:6379> HGETALL user
1) "id"
2) "11"
3) "age"
4) "12"
5) "name"
6) "lucy"
7) "school"
8) "bridge"
9) "weight"
10) "200"
127.0.0.1:6379> HDEL user school
(integer) 1
127.0.0.1:6379> HGETALL user
1) "id"
2) "11"
3) "age"
4) "12"
5) "name"
6) "lucy"
7) "weight"
8) "200"
hexists
判断hash中是否存在某个值的key(0为不存在,1为存在)
127.0.0.1:6379> HGETALL user
1) "id"
2) "11"
3) "age"
4) "12"
5) "name"
6) "lucy"
7) "weight"
8) "200"
127.0.0.1:6379> HEXISTS user email
(integer) 0
127.0.0.1:6379> HEXISTS user id
(integer) 1
hkeys/hvals
hkeys:获取Hash中的全部键
hvals:获取Hash中的全部值
127.0.0.1:6379> hkeys user
1) "id"
2) "age"
3) "name"
4) "weight"
127.0.0.1:6379> hvals user
1) "11"
2) "12"
3) "lucy"
4) "200"
hincrby/hincrbyfloat
hincrby:根据指定整数值进行自增
hincrbyfloat:根据指定浮点数值进行自增
127.0.0.1:6379> hset user score 85
(integer) 1
127.0.0.1:6379> HINCRBY user score 5
(integer) 90
127.0.0.1:6379> hget user score
"90"
127.0.0.1:6379> HINCRBYFLOAT user score 0.2
"90.2"
127.0.0.1:6379> hget user score
"90.2"
hsetnx
** hsetnx:对hash进行赋值,若已存在插入的键,则不执行插入**
127.0.0.1:6379> hget user name
"lucy"
127.0.0.1:6379> hsetnx user name jack
(integer) 0
127.0.0.1:6379> hget user name
"lucy"