Redis键管理的示例分析

发布时间:2021-11-16 11:53:22 作者:小新
来源:亿速云 阅读:184

这篇文章主要介绍Redis键管理的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

单个键管理

1.键重命名

rename key newkey
Redis键管理的示例分析

我们看rename命令确实是可以给键重命名,但如果执行rename命令时新的键已经存在的,那么rename命令会将新的键的键的值替换掉。也就是如下图所示:

Redis键管理的示例分析

当然既然使用rename命令是有风险的,所以Redis为了保证给键重命名的安全性于是提供了renamenx命令,顾名思义,renamenx命令就是保证当前新的键不存在时,给键重命名命令才可以成功。

Redis键管理的示例分析

如上图所示,当renamenx命令给键重命名时,如果重命名的键是存在的,则renamenx命令返回0,表示当前命令执行失败,否则返回1,则表示成功。

下面我们了解一下在使用rename命令或者renamenx命令时的注意事项。


2.随机返回一个键

randomkey
Redis键管理的示例分析

3.键过期

expire key seconds
expireat key timestamp
Redis键管理的示例分析

ttl命令和pttl命令都可以查询键的剩余过期时间,但是pttl命令精度更高可以支持毫秒级。下面我们看一下ttl命令和pttl命令的返回值。

下面我们看一下expireat命令。

Redis键管理的示例分析

expireat命令可以直接设置键的毫秒过期时间戳。除此之外Redis2.6版本之后还支持了毫秒级的过期时间。

pexpire key milliseconds
pexpireat key milliseconds-timestamp
Redis键管理的示例分析
Redis键管理的示例分析

下面我们介绍一下在使用上述命令时的注意事项。


4.迁移键
顾名思义迁移键就是将键从一个地方迁移到另一个地方。比如将键从生产环境迁移到测试环境等等。在Redis中提供了3种方式来支持键的迁移功能,它们分别是move、dump + restore、migrate3种。但它们的底层实现方式,及使用场景均不太一样。下面我们详细了解一下。

(1)、move

move key db


move命令是在Redis的内部进行数据迁移,在Redis中实际上有多个数据库的,所以move命令就是将指定的键从源数据库移动目标数据库中。Redis中数据库相关的知识,我们将在后续的文章中在做介绍。


(2)、dump + restore

dump key
restore key ttl serialized-value [REPLACE]


dump + restore也可以实现Redis中不同实例之间的数据迁移。但和move命令不同dump + restore要分2部实现,下面我们详细了解一下。

Redis键管理的示例分析

下面我们看一下dump + restore方式的注意事项。

下面我们完整演示一下使用dump + restore命令怎么迁移键。

1)、在源Redis中执行dump。

Redis键管理的示例分析

2)、在目标Redis中执行restore。

Redis键管理的示例分析

我们上述操作中启用了2个客户端,一个端口为6379另一个端口为6380。如果在使用dump和restore命令时,如果都在同一个端口客户端中进行时,Redis会返回错误。


(3)、migrate

migrate host port key| destination-db timeout [COPY] [REPLACE] [KEYS key]


在Redis中migrate命令也可以实现键的迁移功能,它和上述的其它迁移命令相比,不同的就是migrate命令就是将dump、restore、del命令组合在了一起,并且简化了操作流程。而且migrate命令还支持原子性操作。下面我们看一下使用migrate命令与dump + restore命令之间的不同之处。

下面我们详细看一下migrate命令的相关参数。

- host:目标Redis的IP地址。
- port:目标Redis的端口。
- key|"":在Redis3.0.6版本之前,migrate只支持迁移一个键,所以此处就是要迁移的键,但Redis3.0.6版本之后是可以支持迁移多个键了,所以如果当前要迁移多个键时,此处为空字符串“”。
- destination-db:目标Redis的数据库索引,因为上面提到过在Redis是有多个数据库存在的,但相关的知识后续在做详细介绍,这里我们只要先知道这个概念就可以了。
- timeout:键迁移的超市时间(单位毫秒)。
- [copy]:如果添加此选项,迁移后并不删除源键。
- [replace]:如果添加此选项,migrate不管目标Redis是否存在该键都会进行数据迁移,并且覆盖。
- [keys key [key ...]]:迁移多个键,迁移多少,就写多少键。
Redis键管理的示例分析
Redis键管理的示例分析

下面我们演示一下通过migrate命令怎么迁移Redis中的键。
1)、源Redis有要迁移的键,而目标Redis中没有:


下面我们执行以下命令:

migrate host port key| destination-db timeout [COPY] [REPLACE] [KEYS key]
Redis键管理的示例分析
Redis键管理的示例分析




在使用migrate命令迁移键时,有一点要特别注意,就是migrate命令在执行时,要在源Redis中执行,如果在目标Redis中执行时,是不会迁移成功的,也就是如上图所示。


Redis键管理的示例分析
Redis键管理的示例分析

2)、源Redis和目标Redis都有要迁移的键。


在使用migrate命令迁移键时如果没有添加replace参数时,则Redis会显示错误,并且如果不添加copy命令时,当键成功迁移后,源Redis中的迁移键,将被删除。


Redis键管理的示例分析

3)、源Redis中没有要迁移的键。


Redis键管理的示例分析
Redis键管理的示例分析

下面我们演示一下批量迁移多个键的操作:


下面我们来比对一下上述3种键迁移的不同。

Redis键管理的示例分析

以上是“Redis键管理的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

推荐阅读:
  1. Redis高级应用的示例分析
  2. Redis协议的示例分析

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

redis

上一篇:如何分析MySQL Group Replication

下一篇:MySQL数值类型在binlog中需要注意的细节有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》