API的理解和使用——全局命令

2021-07-20 05:12

阅读:515

全局命令
命令 功能
set 创建键值对
keys 遍历查看所有键
exists 判断一个键是否存在,1存在,0不存在
dbsize 当前数据库中有多少个键
del 删除一个或多个键
expire 设置过期时间
ttl 查看过期时间
type 判断键的类型

 

 

 

 

 

 

 

 

 

Redis有5种数据结构,它们是键值对中的值,对于键来说有一些通用的命令。

1.查看所有键

命令:keys *

#keys *会将所有的键输出
127.0.0.1:6379> keys *
1) "hello"
2) "a"
3) "python"
4) "mylist"
5) "name"

#添加一个键
127.0.0.1:6379> set World peace
OK
127.0.0.1:6379> keys *
1) "hello"
2) "a"
3) "python"
4) "mylist"
5) "World"  #已经添加
6) "name"

 

2.键总数

命令:dbsize

dbsize命令会返回当前数据库中键的总数。

127.0.0.1:6379> dbsize
(integer) 6   #一共存在6个键
127.0.0.1:6379> keys *  #查看所有
1) "hello"
2) "a"
3) "python"
4) "mylist"
5) "World"
6) "name"

dbsize命令在计算键总数时不会遍历所有键,而是直接获取Redis内置的键总数变量,所以dbsize命令的时间复杂度是O(1)。

keys命令会遍历所有键,所以它的时间复杂度是O(n),当Redis保存了大量键时,线上环境禁止使用。

 

3检查键是否存在

命令:exists key

如果键存在则返回1,不存在则返回0。

127.0.0.1:6379> exists name
(integer) 1    #存在
127.0.0.1:6379> exists huaxia
(integer) 0    #不存在

 

4.删除键

命令:del key [key ...]

del是一个通用命令,无论值是什么数据结构类型,del命令都可以将其删除:

127.0.0.1:6379> del python
(integer) 1    #删除成功
127.0.0.1:6379> exists python
(integer) 0    #查询不存在
127.0.0.1:6379> del name
(integer) 1
127.0.0.1:6379> exists name
(integer) 0

返回结果为成功删除键的个数,假如删除一个不存在的键,就会返回0:

127.0.0.1:6379> del maoxian
(integer) 0  #删除个数为0,证明不存在

同时del命令可以支持删除多个键:

127.0.0.1:6379> set Paul 3
OK
127.0.0.1:6379> set Harden 13
OK
127.0.0.1:6379> set Gordon 10
OK
127.0.0.1:6379> del Paul Harden Gordon
(integer) 3

 

5.键过期

语法:expire key times

Redis支持对键添加过期时间,当超过过期时间后,会自动删除键。

127.0.0.1:6379> set manzi zero
OK    #添加一个键
127.0.0.1:6379> expire manzi 8
(integer) 1     #设置8秒的过期时间
127.0.0.1:6379> ttl manzi
(integer) 3     #还剩3秒
127.0.0.1:6379> ttl manzi
(integer) -2    #键已经被删除

ttl命令会返回键的剩余过期时间,它有3种返回值:

(1)大于等于0的整数:键剩余的过期时间。

(2)-1:键没设置过期时间

(3)-2:键不存在

127.0.0.1:6379> exists hello
(integer) 1    #键存在
127.0.0.1:6379> ttl hello
(integer) -1   #没有设置过期时间

 

6.键的数据结构类型

命令:type key

127.0.0.1:6379> set a b
OK
127.0.0.1:6379> type a
string  #字符串
127.0.0.1:6379> rpush list_one a b c d e
(integer) 5
127.0.0.1:6379> type list_one
list       #列表

键的数据类型指的是它的值代表的数据类型,单独讨论键没有意义。


评论


亲,登录后才可以留言!