Redis入门【七】---------散列哈希(Hash)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tacks/article/details/82628336

前言

Redis的散列可以让用户将多个键值对存到一个redis键里面,从功能来说,redis为散列值提供了一些与字符串值相同特性,使得散列非常适合将一些相关的数据存储到一起。

【1】添加和删除键值对的散列操作

#<1>同时将单个/多个 field-value (域-值)对设置到哈希表 key 中
hset  key field value
hmset key field value [field value ...]
#<2>获取单个/所有给定字段的值
hget  key field
hmget key field [field ...]
#<3>删除散列里面的一个或多个键值对,返回成功删除的数量
hdel key field [field ...]
#<4>返回散列包含的键值对数量
hlen key

127.0.0.1:6379>  hmset hhh a-user tacks a-age 18 a-from nyist
OK
127.0.0.1:6379>  hmget hhh a-user a-age a-from
1) "tacks"
2) "18"
3) "nyist"
127.0.0.1:6379> hset hhh a-city  noknow
(integer) 1
127.0.0.1:6379> hget hhh a-city
"noknow"
127.0.0.1:6379> hdel hhh a-city
(integer) 1
127.0.0.1:6379> hlen hhh
(integer) 3
127.0.0.1:6379>

注意: 类似hmget hmset 这种批量处理多个键的命令既可以给用户带来方便,又可以通过减少命令的调用次数以及客户端与redis之间的通信往返次数来提升redis的性能。

【2】其他特性命令

#<5>检查给定的域是否存在散列中
hexists key field
#<6>获取散列中所有的域
hkeys key
#<7>获取散列中所有的值
hvals key
#<8>获取散列中所有的键值对
hgetall key
#<9>将散列中域的值加上一定整数   
hincrby key field increment
#<10>将散列中域的值加上一定浮点数
hincrbyfloat key field increment
127.0.0.1:6379> hexists hhh a-user
(integer) 1 #存在返回1
127.0.0.1:6379> hexists hhh a
(integer) 0 #不存在返回0
127.0.0.1:6379> hexists hhh a-user
(integer) 1
127.0.0.1:6379> hkeys hhh
1) "a-user"
2) "a-age"
3) "a-from"
127.0.0.1:6379> hvals hhh
1) "tacks"
2) "18"
3) "nyist"
127.0.0.1:6379> hgetall hhh
1) "a-user"
2) "tacks"
3) "a-age"
4) "18"
5) "a-from"
6) "nyist"
127.0.0.1:6379> hincrby hhh a-age 2
(integer) 20
127.0.0.1:6379> hincrby hhh a-money 99
(integer) 99
127.0.0.1:6379> hincrbyfloat key a-money 0.999
"0.999"

注意 : 尽管有hgetall这样获取域值的命令,但是hkeys和hvals也是非常有用的:如果散列的包含的值非常大,那么用户可以显示用hkeys

获取散列包含所有的键,然后再使用hget一个个地取出来它的值,避免因为一次获取多个大体积的值而导致服务器组赛。

打个总结

redis散列常用命令

猜你喜欢

转载自blog.csdn.net/Tacks/article/details/82628336