基础命令2

基础命令2

这次来看一些其它的基础命令。

incrbyfloat

浮点数增长命令,需要给定一个需要增长的浮点数。浮点数没有自增自减操作

1
incrbyfloat num 1.1

setnx

设定新的键值对数据,前提是原始的key不存在。

1
setnx age 18

返回值为

1
2
127.0.0.1:6379> setnx age 19
(integer) 1

假如再使用这个命令的话

1
2
127.0.0.1:6379> setnx age 19
(integer) 0

这个命令并不会执行,只有当age不存在的时候,才可以成功设置age

setex

添加一个string类型的键值对,并指定有效期。

1
setex name 10 "bob"

设定了一个{name: “bob”}的键值对,并且有效期为10s

Key形式的层级命令

为了使键能够有所区别,这里可以使用

1
项目名:实体类:id的形式来进行存储
1
set zxp:user:1 '{"id" : 1, "name": Alice, "age": 18}'

如果又新增了一个user,那么就可以更改后面的数字来表示新增

1
set zxp:user:2 '{"id" : 2, "name": Bob, "age": 20}'

同样的,这些命令都可以使用get命令来进行查询

1
2
get zxp:user:2
"{\"id\" : 2, \"name\": Bob, \"age\": 20}"

Hash类型的数据

Hash类型的数据的所有命令与一开始关于string类型的很像,只是所有的命令前面需要加上一个H来进行区分。

Hset

格式是

1
hset key field value

例如,我们要添加一个hash类型的数据

1
hset zxp:user:3 name "Dube"

这样做比string类型更加直白和方便

hmset

可以一次性添加多个field数据

1
hmset zxp:user:4 name "Jack" age 20 phone 19988899999

Hget和Hmget

这两个命令可以根据key值来进行查询。

1
2
3
hmget zxp:user:4 name age
1) "Jack"
2) "20"

需要注意的是,需要指定多个field名称才可以查询。

Hgetall

这个命令可以查询哈希表中的所有数据(键值对类型)

1
2
3
127.0.0.1:6379> hgetall zxp:user:3
1) "name"
2) "Dube"

只需要指定key的名称即可。

hkeys

获取所有的key值,再zxp:user:3这个表中只有一个键,那就是姓名这个键,我们可以查询一下这个表里面所有键的名称。

1
hkeys zxp:user:3

这样就可以查询到所有键的名称

Hvals

查询所有value的值

1
hvals zxp:user:3

输出结果是:

1
2
127.0.0.1:6379> hvals zxp:user:3
1) "Dube"

hincrby

key值的一个字段增加指定步长。

先创建一个hset格式的数据

1
2
127.0.0.1:6379> hmset zxp:user:5 name "Bob" age 18
OK

获取所有的值

1
2
3
4
5
127.0.0.1:6379> hgetall zxp:user:5
1) "name"
2) "Bob"
3) "age"
4) "18"

我们让这个age字段增加20

1
2
127.0.0.1:6379> hincrby zxp:user:5 age 20
(integer) 38

结果成功返回。

Hsetnx

key添加一个不存在表格中的字段,如果这个字段存在,那么不会添加成功。

我们可以给zxp:user:5添加一个name字段

1
2
127.0.0.1:6379> hsetnx zxp:user:5 name "Mom"
(integer) 0

可以发现添加失败了

总结

这是有关哈希数据的一些基本命令,与一开始的string类型的数据相比,hash数据添加更加方便,不过他们的形式还是一样的。

Licensed under CC BY-NC-SA 4.0
花有重开日,人无再少年
使用 Hugo 构建
主题 StackJimmy 设计