将来的你
一定会感谢现在拼命努力的自己

Redis Cluster集群维护:导入现有Redis数据

集群维护之导入现有Redis数据

实战案例:
公司将redis cluster部署完成之后,需要将之前的数据导入之Redis cluster集群,但是由于Redis cluster使用的分
片保存key的机制,因此使用传统的AOF文件或RDB快照无法满足需求,因此需要使用集群数据导入命令完成。

导入数据需要redis cluster不能与被导入的数据有重复的key名称,否则导入不成功或中断。

基础环境准备
导入数据之前需要关闭各redis 服务器的密码,包括集群中的各node和源Redis server,避免认证带来的环境不一
致从而无法导入,可以加参数--cluster-replace 强制替换Redis cluster已有的key。

#在所有节点上关闭各Redis密码认证 [root@redis-s1 ~]# redis-cli -h 10.0.0.18 -p 6379 -a 123456 CONFIG SET requirepass "" Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. OK

1 2 3 4 5 #在所有节点上关闭各Redis密码认证 [ root @ redis - s1 ~ ] # redis-cli -h 10.0.0.18 -p 6379 -a 123456  CONFIG SET requirepass "" Warning : Using a password with '-a' or '-u' option on the command line interface may not be safe . OK

执行数据导入
将源Redis server的数据直接导入之redis cluster。
Redis 3/4:

[root@redis ~]# redis-trib.rb import --from 外部Redis node-IP:PORT --replace 集群服务器IP:PORT

1 2 [ root @ redis ~ ] # redis-trib.rb import --from 外部Redis node-IP:PORT --replace 集群服务器 IP : PORT

Redis 5:

redis-cli --cluster import 集群服务器IP:PORT --cluster-from 外部Redis node-IP:PORT -- cluster-copy --cluster-replace

1 2 redis - cli -- cluster import 集群服务器 IP : PORT -- cluster - from 外部 Redis node - IP : PORT -- cluster - copy -- cluster - replace

范例:

[root@redis-node1 ~]#cat redis_test.sh #!/bin/bash # NUM=1000 #PASS=123456 for i in `seq $NUM`;do redis-cli -h 127.0.0.1 -a "$PASS" set key${i} v${i} echo "key${i}:v${i} 写入完成" done echo "$NUM个key写入到Redis完成" [root@redis-node1 ~]#bash redis_test.sh [root@redis-node2 ~]#redis-cli --cluster import 10.0.0.18:6379 --cluster-from 10.0.0.8:6379 --cluster-replace [root@redis-node5 ~]#redis-cli GET key1 "v1" [root@redis-node5 ~]#

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [ root @ redis - node1 ~ ] #cat  redis_test.sh #!/bin/bash # NUM = 1000 #PASS=123456 for i in ` seq $ NUM ` ; do          redis - cli - h 127.0.0.1 - a "$PASS" set key $ { i } v $ { i }          echo "key${i}:v${i} 写入完成" done echo "$NUM个key写入到Redis完成" [ root @ redis - node1 ~ ] #bash redis_test.sh   [ root @ redis - node2 ~ ] #redis-cli  --cluster import 10.0.0.18:6379 --cluster-from 10.0.0.8:6379 --cluster-replace   [ root @ redis - node5 ~ ] #redis-cli   GET key1 "v1" [ root @ redis - node5 ~ ] #  

赞(0) 打赏
声明:本站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,若涉及侵权请及时告知,将会在第一时间删除,联系邮箱:contact@3yyy.top。文章观点不代表本站立场。本站原创内容未经允许不得转载:三叶运维 » Redis Cluster集群维护:导入现有Redis数据
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

https://beian.miit.gov.cn/