【Redis】基础命令合集 | 万字长文

一些基础的命令

数据库相关

我们通过 Redis的配置文件能够了解到 Redis默认数据库的数量为 16个

我们如果想在这些数据库之间进行切换可以使用 select dbindex命令来实现;这里的 dbindex指的是数据库的下标,默认为 0~15

127.0.0.1:6379> select 1 # 将数据库切换至下标为 1的数据库
OK
127.0.0.1:6379[1]>  # 切换成功后端口号后面会标识所在的数据库下标
# 而默认情况下我们使用的数据库下标为 0,即第一个数据库;这种情况端口号后面将不会有所标识

Redis不同数据库中的数据互不影响,也就是说之前存到数据库中 key为 testName的数据,此时在下标为 1的数据库中是查不到的

127.0.0.1:6379[1]> get testName # 尝试在下标为 1的数据库中取到 key为 "testName"的数据
(nil) # 没有取到
127.0.0.1:6379[1]> select 0 # 切回默认的数据库
OK
127.0.0.1:6379> get testName # 再次执行上述操作
"moluu" # 可以看到,切换数据库后取到了key为 "testName"的数据

select [num]命令外我们还经常会用到 dbsize命令,该命令的作用是查看当前数据库 key的总数

127.0.0.1:6379> dbsize
(integer) 1

可以看到,此时第一个数据库中是存在着一条记录的

我们也可以使用 flushdb命令来清空当前所在数据库

127.0.0.1:6379> dbsize
(integer) 1 # 未执行清空当前所在数据库操作前
127.0.0.1:6379> flushdb # 使用该命令清空当前所在数据库
OK
127.0.0.1:6379> dbsize
(integjer) 0 # 此时的记录数未 0表示当前数据库已经空了

而如果我们要执行清空所有数据库的操作,使用 flushdb命令一个个清就显得有些呆板了;

Redis提供了专门的删库跑路(划掉)命令供我们使用,即flushall,该命令执行后会清空所有数据库中的数据

127.0.0.1:6379> dbsize
(integer) 1 # 此时下标为 0的数据库中存在着一条记录
127.0.0.1:6379> select 1 # 我们切换到下标为 1的数据库中执行清空全部数据库命令
OK
127.0.0.1:6379[1]> flushall
OK
127.0.0.1:6379[1]> select 0 # 再切回去
OK
127.0.0.1:6379> dbsize # 很明显,清空全部数据库的操作成功了;总数的记录值为 0
(integer) 0

key相关

在 Redis中,无论什么类型的数据 都存在着 key,可想而知掌握 key相关的命令是多么重要


我们在正常使用 Redis时不可能记得住我们添加了哪些数据,而想要查看添加了哪些数据我们可以先拿到他们的 key

这自然是可以办到的, keys *命令的作用就是如此

127.0.0.1:6379> set testName1 test # 添加第一条数据
OK
127.0.0.1:6379> set testName2 test1 # 添加第二条数据
OK
127.0.0.1:6379> keys * # 使用 keys * 命令查看数据库中所有数据的 key
1) "testName2"
2) "testName1"
# 数据库中所有数据的 key如上

删除不必要的数据我们可以使用 del key [keys]命令来实现

127.0.0.1:6379> keys *
1) "testName1"
2) "testName2"
# 如上,此时数据库中存在两条数据
127.0.0.1:6379> del testName1 # 删除其中一条数据
(integer) 1
127.0.0.1:6379> keys *
1) "testName2" # 可以看到 key为 "testName1"的数据已经被删除了

到这里,key的增删改查只差一个修改了,key的修改我们可以使用 rename key newkey命令实现

127.0.0.1:6379[1]> keys * 
1) "testName1"
127.0.0.1:6379[1]> rename testName1 testName2 # 将 key "testName1"修改为 "testName2"
OK
127.0.0.1:6379[1]> keys *
1) "testName2" # 修改成功

如果要将数据进行不同数据库之间的迁移,我们可以使用 move key dbindex命令来实现

127.0.0.1:6379> keys *
1) "testName2"
127.0.0.1:6379> move testName2 1 # 将未被删除的 "testName2"数据移动到下标为 1的数据库中
(integer) 1
127.0.0.1:6379> keys *
(empty array) # 再次查看下标为 0数据库中所有数据的 key时可以发现 "testName2"已经不存在了
127.0.0.1:6379> select 1 # 切到下标为 1的数据库中确认数据移动成功
OK
127.0.0.1:6379[1]> keys *
1) "testName2" # 可以看到,key为"testName2"的数据确实移动过来了

有时候我们存入的数据并不一定要永久保存,Redis提供了一个命令;可以让我们为数据设置一个过期时间(单位为秒)

这个命令就是 expire key seconds,如果要查看数据剩余的过期时间我们还可以使用 ttl key命令来实现

127.0.0.1:6379[1]> expire testName2 10 # 将刚刚移动过来的数据设置十秒后过期
(integer) 1
127.0.0.1:6379[1]> ttl testName2 # 查看该数据的过期时间
(integer) 6
127.0.0.1:6379[1]> ttl testName2 #再次查看
(integer) 5
127.0.0.1:6379[1]> ttl testName2 # 再次查看
(integer) 4
127.0.0.1:6379[1]> ttl testName2 # 最后一次查看等待 4秒以上再执行
(integer) -2 # 返回的过期时间为 -2表示已经过期了
127.0.0.1:6379[1]> keys * # 使用 keys * 命令确认数据已经不存在了
(empty array)

当然了 过期操作不是不可逆的,我们可以在其过期之前移除其过期时间

要使用的命令为 persist key,以下为演示

127.0.0.1:6379[1]> expire testName2 100 # 为该数据设置 100秒后过期
(integer) 1
127.0.0.1:6379[1]> ttl testName2 # 确认过期操作已经开始了
(integer) 93
127.0.0.1:6379[1]> persist testName2 # 使用 persist命令移除其过期时间
(integer) 1
127.0.0.1:6379[1]> ttl testName2 # 再次查看其过期时间
(integer) -1 # 为 -1表示不会过期

除此之外我们还可以使用 exists key [keys]来检查是否存在这样一条数据或多条数据,如果返回 1表示存在;返回 0则相反

127.0.0.1:6379[1]> set test test # 添加一条数据到该数据库中
OK
127.0.0.1:6379[1]> exists test # 检查 key为 test的数据是否存在于该数据库中
(integer) 1 # 返回 1表示存在了
127.0.0.1:6379[1]> del test # 现在我们将其删掉
(integer) 1
127.0.0.1:6379[1]> exists test # 再次检查则返回 0自然是不存在了
(integer) 0

有时候我们还需要判断一条数据的数据类型,此时我们就可以使用 type key命令来实现该操作

127.0.0.1:6379
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值