防暴
作者:Ajeet辛格莱
Redis Input/Output Tools (RIOT)是一套Redis的导入/导出命令行工具:
- RIOT Redis:实时复制从任何Redis数据库(包括AWS Elasticache)到另一个Redis数据库。
- RIOT DB:从RDBMS迁移到Redis, reresearch, RedisJSON,…
- 防暴复述,
- 防暴DB
#
使用防暴复述,目前可用的大多数数据库迁移工具本质上都是离线的。例如,将数据从AWS ElastiCache迁移到Redis企业云意味着备份您万博体育彩的ElastiCache数据到AWS S3桶,并使用其UI导入到Redis企业云。这意味着一些停机时间,并可能导致数据丢失。其他可用的技术包括创建源Redis服务器的时间点快照,并将更改应用到目标服务器,以保持两个服务器的同步。这听起来可能是一种很好的方法,但当您必须维护几十个脚本来实现迁移策略时,它可能具有挑战性。
RIOT Redis是一个迁移工具,允许两个Redis数据库之间的无缝实时复制。
#
步骤1。开始下载最新版本并解压缩归档文件。
启动bin / riot-redis
脚本并遵循提供的使用信息。
#
步骤2。构建和运行#
步骤3。通过Homebrew (macOS)安装#
使用你可以在任何子命令上使用——help:
Redis连接选项与Redis -cli相同:
这里描述了Redis URI语法。
#
步骤4。例子下面是一个活复制的例子,从源Redis运行在本地主机和端口6379,到目标Redis运行在本地主机和端口6380:
#
第5步。验证一旦复制完成,RIOT Redis将执行一个验证步骤,比较源数据库和目标数据库之间的值和ttl。输出如下所示:
#相同的值
#不匹配的值
-
#键只存在于源数据库中
<: #键只存在于目标数据库中
TTL差大于公差的#键
#
步骤6。体系结构RIOT Redis使用生产者/消费者的方法实现客户端复制:
生产者连接到源Redis(例如ElastiCache),并遍历键来读取它们对应的值
消费者连接到目标Redis(例如Redis Enterprise Cloud),并写入之前创建的键/值元万博体育彩组
- 键读取器:启动SCAN并可选地调用SUBSCRIBE以侦听键空间通知(实时复制)。
- 值读取器:接受键并调用DUMP和TTL。
- Key/Value writer:接受Key/Value /ttl元组并调用RESTORE和EXPIRE。
注意:动态复制利用了键空间通知。确保源Redis数据库启用了keyspace通知,使用Redis .conf中的notify-keyspace-events = KA或通过CONFIG SET。
备注:热复制机制不能保证数据的一致性。Redis通过pub/sub发送按键空间通知,但不提供保证交付。例如,在网络故障的情况下,RIOT Redis可能会错过一些通知。
#
使用防暴DBRIOT DB允许从关系数据库导入/导出数据。
#
步骤1。开始下载最新版本并解压缩归档文件。
启动bin/riot-db脚本并按照提供的使用信息进行操作。
#
步骤2。构建和运行#
步骤3。通过Homebrew (macOS)安装#
步骤4。使用你可以在任何子命令上使用——help:
Redis连接选项与Redis -cli相同:
#
第5步。司机RIOT DB包括最常见的rdbms的驱动程序:
#
甲骨文#
IBM Db2#
MS SQL Server#
MySQL#
PostgreSQL#
SQLite对于未包含的数据库,必须在lib目录下安装相应的JDBC驱动程序,并修改RIOT DB CLASSPATH:
#
步骤6。进口使用import命令导入SQL语句的结果集。
#
从PostgreSQL进口你可以指定一个或多个Redis命令作为导入的目标:
#
导入到散列#
导入到散列中,并在键上设置TTL#
导入到散列中,设置TTL并添加到一个名为myset的集#
步骤7。出口#
出口到PostgreSQL#
从PostgreSQL导入JSON字符串这将生成如下的Redis字符串: