使用dataX从mysql源地址将redis-writer表导入到主从redis的主节点

1、搭建redis主从复制环境:并验证redis主从复制环境是否可行。

   详情参考网址:redis主从复制搭建 - 喷气机 - 博客园

2、 环境搭建、Redis及Python的安装:

详情参考网址:Redis | Python : (一) 环境搭建、Redis及Python的安装_u013169890的博客-CSDN博客

3、安装datax及基于datax进行二次开发的插件redis-writer(如遇到安装失败问题,可根据问题酌情解决)

详情参考网址:异构数据源导redis不用找了!DataX二次开发插件rediswriter已上菜_u013289115的博客-CSDN博客_datax redis

4、然后,安装完成后,在/root/DataX/target/datax/datax/bin目录下找到datax.py文件,是后面需要运行的python文件,在/root/DataX/target/datax/datax/plugin/目录下可以找到reader和writer的文件(包含datax支持的各个数据源的价包和配置reader和writer格式的json文件模板)

5、在/root/DataX/target/datax/datax/job/文件夹下创建需要运行的json配置文件(配置方式可以参考配置文件模板),创建mysql-redis.json配置文件,如下所示:

{

  "job": {

    "setting": {

      "speed": {

        "channel": 3    # 并发通道数,根据自己的数据库性能而定,一般数据库建议不超过32个

      }

    },

    "content": [

      {

         "reader": {

                    "name": "mysqlreader",

                    "parameter": {

                        "column": ["userId" , "channel" , "name"],  #数据表需要同步的字段,可以写为*来匹配所有字段

                        "connection": [

                            {

                                "jdbcUrl": ["jdbc:mysql://36.133.163.88:3306/dacheng?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8"],

                                 # mysql数据源的访问地址,与所在的数据库

                                "table": ["redis_writer"]   # 目的表的表名称。支持写入一个或者多个表。当配置为多张表时,必须确保所有表结构保持一致。 

                            }

                        ],

                        "password": "Dcyx2018,./",   # 密码

                        "username": "root",        # 用户名

                        "where": ""

                    }

        },

        "writer": {

          "name": "rediswriter",

          "parameter": {

            "redisMode": "cluster",

            "address": "36.133.33.42:6379",

            "auth": "",

            "writeType":"string",

            "config":{

              "colKey":{"name":"userId","index":0},

              "colValue":{"name":"name","index":2},

              "expire":300,

              "keyPrefix":"datax:string:"

            }

          }

        }

      }

    ]

  }

}

6、在/root/DataX/target/datax/datax/目录下,运行命令:python /bin/datax.py  job/mysql-redis.json ,然后命令运行完成后如下图:表示数据同步成功

7、接着,到redis主从复制的主节点和从节点分别查看从mysql源同步来的数据是否成功,如下图所示:从图中可以看出,mysql源的数据已经同步过来了,在redis主节点数据有重复,在redis两个从节点数据正常从主节点同步过来,数据正常,没有重复。

7、重点注意:

  一、datax及基于datax二次开发的插件redis-writer安装失败的问题,这里面会有很多坑。

  二、json配置文件的配置,比如源数据库的连接和配置,目标数据库的连接和配置,都容易出错而导致程序运行出错。

  三、redis的redis.conf文件的修改和配置也容易导致程序运行出错,这里,"redisMode": "cluster"目前只支持cluster,换成standalone会报错(不知是什么原因),而且"address": "36.133.33.42:6379",也只能填写一个地址,填写多个主从复制地址后也会报错(尚不知原因)。

  四、目前redis-writer插件支持的数据格式有限,仅有string、list、hash。

  五、 redis的这三种数据类型导入已经够用,不用再去单独写udf,只要datax支持的reader,有了它之后,都能写redis!

  六、目前datax及其插件暂不支持redis的reader操作,因此,无法使用datax从redis主从导入数据到redis集群。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值