Redis基础操作:增删改查与失效设定

Redis是一个Key-Value的数据库,这篇文章将通过实际的Redis基础命令来介绍一下如何进行相关操作。

环境准备

使用容器化方式准备Redis环境应该是最为简单的方式了, 本系列示例中使用Redis的6.0.4版本进行说明。

liumiaocn:~ liumiao$ docker run --rm --name=REDIS -d redis:6.0.4
9ac3dc04b2d09faf32b8576239b821b9041f43936341eb801cde18aa1aa0b855
liumiaocn:~ liumiao$ docker ps |grep REDIS
9ac3dc04b2d0        redis:6.0.4                    "docker-entrypoint.s…"   6 seconds ago       Up 5 seconds        6379/tcp                                       REDIS
liumiaocn:~ liumiao$

进入到启动的名为REDIS的容器之中,使用容器中提供的redis-cli进行连接,即可进行Redis命令的执行了。

liumiaocn:~ liumiao$ docker exec -it REDIS sh
# 
# which redis-cli
/usr/local/bin/redis-cli
# redis-cli
127.0.0.1:6379> 

命令:ping

使用ping命令确认一下是否能够收到PONG的回应,如果收到,说明正常

127.0.0.1:6379> ping
PONG
127.0.0.1:6379> 

命令:keys

使用keys *可以获得所有的key的信息,此时可以看到什么信息都没有

127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>

命令:set

使用set命令可以进行新增和修改,比如首先可以进行新增的验证,添加两个key-value对

127.0.0.1:6379> set version 0.1
OK
127.0.0.1:6379> set software redis
OK
127.0.0.1:6379>

此时使用keys *即可获得所有的2个key的列表信息了

127.0.0.1:6379> keys *
1) "software"
2) "version"
127.0.0.1:6379>

对已存在的key进行set即为更新操作

127.0.0.1:6379> set version 0.2
OK
127.0.0.1:6379> get version
"0.2"
127.0.0.1:6379>

命令:get

相较于set命令的增和改的操作,get命令用于查询

127.0.0.1:6379> get version
"0.1"
127.0.0.1:6379>

如果是多条查询的情况,则可以使用mget

127.0.0.1:6379> mget version software
1) "0.1"
2) "redis"
127.0.0.1:6379> 

注意:如果get所查询的key实际并不存在或者已经失效的情况下,返回值会是nil

扫描二维码关注公众号,回复: 11577612 查看本文章

命令:del

del命令则是用于通过key来删除相应的key-value对,如果指定key不存在的情况下,会返回0,执行示例日志如下所示

127.0.0.1:6379> del version
(integer) 1
127.0.0.1:6379> get version
(nil)
127.0.0.1:6379> del version
(integer) 0
127.0.0.1:6379> 

另外del还可以指定多个key进行删除,删除对象列表中也可以包含已经被删除的或者不存在的内容,比如

127.0.0.1:6379> del version software
(integer) 1
127.0.0.1:6379> 

命令:expire 与 ttl/pttl

命令expire可以设定key的过期时间,通过ttl或者pttl获取key还剩余的有效时长(ttl获取秒单位,pttl为毫秒单位),执行示例如下所示

127.0.0.1:6379> expire version 10
(integer) 0
127.0.0.1:6379> set version 0.3
OK
127.0.0.1:6379> expire version 10
(integer) 1
127.0.0.1:6379> ttl version
(integer) 4
127.0.0.1:6379> ttl version
(integer) 2
127.0.0.1:6379> ttl version
(integer) 1
127.0.0.1:6379> ttl version
(integer) -2
127.0.0.1:6379> ttl version
(integer) -2
127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379>

说明:expire所指定的key如果不存在的话返回值中同样不进行计数,通过ttl可以查询指定的key在多少秒后会失效,需要注意的是失效之后ttl返回的结果为-2,-2表示指定的key已经失效,等同于不存在的key,比如:在key *确认当前没有任何key的情况下,确认ttl software的结果同样是-2

127.0.0.1:6379> ttl software
(integer) -2
127.0.0.1:6379> 

另外,通过set命令也同样可以设定过期时间,同时还可以指定单位为毫秒,指定秒单位的时候使用ex,毫秒单位的时候为px,返回毫秒的过期剩余时间的时候可以使用pttl,执行示例如下所示:

127.0.0.1:6379> set version 0.4 ex 8
OK
127.0.0.1:6379> ttl version
(integer) 5
127.0.0.1:6379> pttl version
(integer) 2329
127.0.0.1:6379> ttl version
(integer) -2
127.0.0.1:6379> 

猜你喜欢

转载自blog.csdn.net/liumiaocn/article/details/106569215
今日推荐