【Redis】RCMD 03 Hash 哈希

1、直接写入 (覆盖写入)

语法    HSET 键 字段 值  

很像对象,也像Map,键是对象的引用,而字段又是属性的引用,值属于XX键的XX值

其实就很像这个了    值 = 对象 . 属性  

 

样例:

127.0.0.1:6379[12]> HSET jojo name jotaro
(integer) 1
127.0.0.1:6379[12]> HSET jojo standard star-platium
(integer) 1
127.0.0.1:6379[12]> HSET jojo gender male
(integer) 1
127.0.0.1:6379[12]> HSET jojo age 17
(integer) 1
127.0.0.1:6379[12]>

先判断字段是否存在再写入

HSETNX 键 字段 值

name字段已存在不可覆写

127.0.0.1:6379[12]> HSETNX jojo name joseph
(integer) 0
127.0.0.1:6379[12]>

单个读取

HGET 键 字段

替身是?

127.0.0.1:6379[12]> HGET jojo standard
"star-platium"
127.0.0.1:6379[12]>

哈希 多 - 读 - 多 - 写

HMSET 键 字段1 值1 字段2 值2 字段3 值3 ...

HMGET 键 字段1 字段2 字段3 ...

读取该键所有的字段 + 值:

127.0.0.1:6379[12]> HGETALL jojo
1) "name"
2) "jotaro"
3) "standard"
4) "star-platium"
5) "gender"
6) "male"
7) "age"
8) "17"
127.0.0.1:6379[12]>

只获取所有字段:

127.0.0.1:6379[12]> HKEYS jojo
1) "name"
2) "standard"
3) "gender"
4) "age"
127.0.0.1:6379[12]>

只获取所有值:

127.0.0.1:6379[12]> HVALS jojo
1) "jotaro"
2) "star-platium"
3) "male"
4) "17"
127.0.0.1:6379[12]>

删除字段:

127.0.0.1:6379[12]> HDEL jojo standard
(integer) 1
127.0.0.1:6379[12]>

支持多字段同时删除

HDEL 键 字段1 字段2 字段3 ...

字段是否存在:

HEXISTS 键 字段

替身没了

127.0.0.1:6379> HEXISTS jojo standard
(integer) 0
127.0.0.1:6379>

获取字段个数:

127.0.0.1:6379[12]> HLEN jojo
(integer) 3

 

计数命令

提示:哈希的计数仅一个命令实现 HINCRBY

强制要求提供步长参数,如果要实现计数减少操作,使用负数步长实现

127.0.0.1:6379> HSET jojo power 100
(integer) 1
127.0.0.1:6379> HINCRBY jojo power 50
(integer) 150
127.0.0.1:6379> HINCRBY jojo power -120
(integer) 30
127.0.0.1:6379>

另外还支持浮点计数

127.0.0.1:6379> HINCRBYFLOAT jojo power 0.15
"30.149999999999999"

但是是一个近似值处理,并没什么用。。。

 

posted @ 2020-09-09 14:10  emdzz  阅读(231)  评论(0)    收藏  举报