使用教程(七)的详细说明:关键操作命令

1。总结:

在本系列的前几个博客,主要的故事是关于Redis数据类型相关的命令,如字符串,列表,哈希,和sorted-set.these命令都有一个共同点,所有的操作都是针对价值相关的关键。本博客将重点与关键的Redis命令。学习这些命令是学习使用一个非常重要的基础,也是一个很好的工具,充分挖掘Redis的潜力。

在本博客中,我们将提供所有相关命令的详细列表和典型示例,以便于我们当前的学习和将来的参考。

两。相关命令列表:





命令的原型
时间复杂度
Command description
返回值


按键模式
O(n)
n在复杂性代表关键数据库中的数的时间,把所有的钥匙匹配模式参数。应该指出的是,在我们的正常运行,我们应该避免调用命令尽可能多的,因为大型数据库,这个命令是耗时和Redis服务器的性能也伟大的。模式支持通配符glob风格格式,如任意一个或多个字符,一个任意字符,和{ }为ABC在方括号内的任何信。
匹配模式的键列表。


删除键{键…}
O(n)
n在时间复杂度表示删除关键数。键中指定的参数从数据库,如果指定的键不存在省略。还必须指出,如果指定的键相关联的数据类型是字符串类型,但列表,设置,哈希和排序的集合,每个键删除的时间复杂度为O(m),其中m代表容器中的元素的个数。为字符串类型的关键,时间复杂度为O(1)。
实际上删除的键的数目。


存在的关键
o(1)
确定指定的键是否存在。
1意味着存在,0表示没有存在。


移动键分贝
o(1)
将当前数据库中指定的密钥键移动到参数中指定的数据库。如果键已经存在于目标数据库中或当前数据库中不存在,则命令将不执行任何操作并返回0。
移动的成功返回1,否则为0。


重命名关键newkey
o(1)
重命名指定的键,如果两键参数的命令是相同的,或源项不存在,该命令将返回有关错误的信息。如果市纽克已经存在,它是直接覆盖。



renamenx关键newkey
o(1)
如果没有新的值,那么参数中原始值的变化为一个新值。
1表示修改成功,否则为0。


坚持重点
o(1)
如果密钥有过期时间,则命令将取消其到期时间,使密钥不再超时,但可以持久存储。
1表示密钥的到期时间被删除,0表示密钥不存在或没有过期时间。


到期关键秒
o(1)
此命令设置参数中指定的密钥的超时时间秒数,在此之后,密钥将自动删除。如果在超时之前修改密钥,则将删除与密钥相关联的超时时间。
1表示超时设置,0表示该键不存在或不能设置。


expireat关键时间戳
o(1)
此命令的逻辑功能与到期完全相同,唯一的区别是命令指定的超时时间是绝对时间,而不是相对时间。此时间参数是UNIX时间戳格式,即流经1970年1月1日的秒数。
1表示超时设置,0表示该键不存在或不能设置。


TTL的关键
o(1)
获取键所留下的超时描述。
返回剩余的描述,如果键不存在或没有超时设置,返回- 1。


randomkey
o(1)
从当前打开的数据库随机返回一个键。
返回随机密钥,如果数据库是空的,则返回0。


型的关键
o(1)
获取参数中指定键的关联值的类型,该值将以字符串的格式返回。
返回的字符串的字符串,列表,哈希,和zset,如果不存在则返回无。


{ } {排序键的方式限制数} { {偏移得到模式得到模式{ ASC DESC } {α} { |存储目的地}…
o(n×m×log(m))
这个命令比较复杂,所以我们给出了最基本的用法。感兴趣的网友可以参考Redis官方文档。
返回排序后的原始列表。







三。An example of the command:

1。钥匙/重命名/删除 / / / renamenx存在移动:

复制代码代码如下所示:

#启动redis客户端在shell命令行工具。

使用CLI / >

#清空当前选定的数据库,为了理解下面的例子。

Redis 127.0.0.1:6379 > flushdb

好啊

添加#模拟数据类型的字符串。

Redis 127.0.0.1:6379 > 2套钥匙

好啊

Redis 127.0.0.1:6379 >设置mykey2 你好

好啊

添加#模拟数据类型设置。

Redis 127.0.0.1:6379 >萨德mysetkey 123

(整数)3

添加#模拟数据类型的哈希。

Redis 127.0.0.1:6379 > HSET mmtest用户名史蒂芬

(整数)1

#根据模型中的参数,得到当前数据库关键要满足所有的模型,可以从产出看,顺序不区分在执行时间的关键价值类型相关。

Redis 127.0.0.1:6379 >键我*

1)mysetkey

2)钥匙

3)mykey2

#取出两把钥匙。

Redis 127.0.0.1:6379 >德尔MyKey mykey2

(整数)2

检查是否#刚刚删除的关键仍然存在,从返回的结果,MyKey确实已被删除。

Redis 127.0.0.1:6379 >存在的钥匙

(整数)0

#检查没有删除键,并比较上述命令的结果。

Redis 127.0.0.1:6379 >存在mysetkey

(整数)1

# mysetkey按钮在当前数据库ID 1数据库,可以从已经移动成功的结果。

Redis 127.0.0.1:6379 >移动mysetkey 1

(整数)1

# Open ID 1数据库。

Redis 127.0.0.1:6379 >选择1

好啊

刚搬过去#检查是否存在的关键,从返回结果已经存在。

Redis 127.0.0.1:6379 { 1 } >存在mysetkey

(整数)1

在#重开ID作为默认的数据库0。

Redis 127.0.0.1:6379 { 1 } >选择0

好啊

#检查关键已经不存在就删除,从返回结果已被删除。

Redis 127.0.0.1:6379 >存在mysetkey

(整数)0

#新测试数据。

Redis 127.0.0.1:6379 >设置MyKey的你好

好啊

# MyKey将更名为mykey1

Redis 127.0.0.1:6379 >重命名MyKey mykey1

好啊

#因为钥匙已被重命名,再返回nil。

Redis 127.0.0.1:6379 >得到MyKey

(无)

对于#新名称。

Redis 127.0.0.1:6379 >得到mykey1

你好

#因为MyKey不存在,那么返回错误信息。

Redis 127.0.0.1:6379 >重命名MyKey mykey1

(错误)没有这样的键

#准备测试关键renamenx

Redis 127.0.0.1:6379 >设置oldkey 你好

好啊

Redis 127.0.0.1:6379 >设置newkey 世界

好啊

因为# newkey已经存在,所以命令失败。

Redis 127.0.0.1:6379 > renamenx oldkey newkey

(整数)0

#看到newkey的价值,发现它是不受renamenx。

Redis 127.0.0.1:6379 >得到newkey

世界



2。坚持 / / / TTL到期expireat:

复制代码代码如下所示:

例如#试验数据回。

Redis 127.0.0.1:6379 >设置MyKey的你好

好啊

的关键是#超时100秒。

Redis 127.0.0.1:6379 >到期MyKey 100

(整数)1

#通过TTL命令来查看剩下多少秒。

Redis 127.0.0.1:6379 > TTL MyKey

(整数)97

#立即执行命令的坚持,暂停键的存在成为持久的关键,关键将删除超时。

Redis 127.0.0.1:6379 >坚持MyKey

(整数)1

对# TTL返回值告诉我们,关键还没有出来的时候。

Redis 127.0.0.1:6379 > TTL MyKey

(整数)- 1

#背后的终止命令数据。

Redis 127.0.0.1:6379 >德尔MyKey

(整数)1

Redis 127.0.0.1:6379 >设置MyKey的你好

好啊

#设置超时的键100秒。

Redis 127.0.0.1:6379 >到期MyKey 100

(整数)1

#使用TTL命令查看当前的数秒,可以从96秒,结果看到左。

Redis 127.0.0.1:6379 > TTL MyKey

(整数)96

关键#更新超时时间是20秒,从成功执行返回值。

Redis 127.0.0.1:6379 >到期MyKey 20

(整数)1

#和TTL的检查,从结果中可以看到它的更新。

Redis 127.0.0.1:6379 > TTL MyKey

(整数)17

#立即更新的核心价值,使其无效的超时。

Redis 127.0.0.1:6379 >设置MyKey的世界

好啊

#从TTL结果,修改命令的关键,关键是无效的超时。

Redis 127.0.0.1:6379 > TTL MyKey

(整数)- 1



三.类型/ randomkey /排序:

复制代码代码如下所示:

#因为毫米关键在数据库中不存在,所以命令返回None。

Redis 127.0.0.1:6379 >型mm

没有

对# MyKey的值是字符串类型,因此返回的字符串。

Redis 127.0.0.1:6379 > type MyKey

字符串

#准备一种关键值设置。

Redis 127.0.0.1:6379 > Sadd mysetkey 12

(整数)2

对# mysetkey关键设置,所以它返回字符串集。

Redis 127.0.0.1:6379 >型mysetkey



#返回数据库中的任何关键。

Redis 127.0.0.1:6379 > randomkey

oldkey

当前打开的#空数据库。

Redis 127.0.0.1:6379 > flushdb

好啊

#由于缺乏数据,返回nil。

Redis 127.0.0.1:6379 > randomkey

(无)