美文网首页
Redis 官网集群步骤

Redis 官网集群步骤

作者: desirelll | 来源:发表于2017-10-30 10:26 被阅读0次

一、环境介绍

1. mysql 节点1环境

  • 操作系统: centos x64
  • 数据库名: lujw_mycat_db_53_1
  • hostname: c1
  • ip: 192.168.171.53

2. mysql 节点2环境

  • 操作系统: centos x64
  • 数据库名: lujw_mycat_db_54_1
  • hostname: c2
  • ip: 192.168.171.54

3. mycat 环境

安装在个人电脑 MacBook 上
版本:1.6 release

4. 前提条件

安装好 mycat,两个节点安装好 mysql

二、配置 mycat

1. 配置 schema.xml

根据个人情况修改 url,user,password

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

    <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
        <table name="travelrecord" dataNode="dn1,dn2" rule="auto-sharding-long" />
        <table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2" />
        <table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" />
        <table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2" rule="mod-long" />
        <table name="employee" primaryKey="ID" dataNode="dn1,dn2" rule="sharding-by-intfile" />
    </schema>
    
    <dataNode name="dn1" dataHost="c1" database="lujw_mycat_db" />
    <dataNode name="dn2" dataHost="c2" database="lujw_mycat_db" />
    
    <!-- 主机C1 -->
    <dataHost name="c1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        <heartbeat>select user()</heartbeat>
        <writeHost host="hostM1" url="192.168.171.53:1234" user="user" password="123456">
        </writeHost>
    </dataHost>
    <!-- 主机C2 -->
    <dataHost name="c2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native">
        <heartbeat>select user()</heartbeat>
        <writeHost host="hostM2" url="192.168.171.54:1234" user="user" password="123456">
        </writeHost>
    </dataHost>
    
    
</mycat:schema>

2. 配置 server.xml

在尾部添加一个访问数据库的用户,具体看个人用户设置
格式如下

<!-- 为mycat配置一个用户 -->
<user name="cat">
        <property name="password">cat</property>
        <property name="schemas">TESTDB</property>
</user>

3. 创建数据库

分别在两个节点上使用 mysql 创建 lujw_mycat_db 数据库

三、启动 mycat

使用 mycat start 指令尝试运行 mycat,会发现在 logs 目录下的输出日志 wrapper.log 中出现错误,这是因为 mycat 默认的 schema.xml 配置了三个节点,相应的 rule.xml 中的规则也设置了三个节点。我们可以根据日志中的提示找到相应的 rule,然后进行修改。例如

Caused by: io.mycat.config.util.ConfigException: Illegal table conf : table [ TRAVELRECORD ] rule function [ rang-long ] partition size : 3 > table datanode size : 2, please make sure table datanode size = function partition size

打开 rule.xml 找到上述 rang-long 的规则

<function name="rang-long"
        class="io.mycat.route.function.AutoPartitionByLong">
        <property name="mapFile">autopartition-long.txt</property>
</function>

再打开属性文件 autopartition-long.txt

# range start-end ,data node index
# K=1000,M=10000.
0-500M=0
500M-1000M=1
1000M-1500M=2

修改为两个节点的配置

# range start-end ,data node index
# K=1000,M=10000.
0-500M=0
500M-1500M=1
# 1000M-1500M=2

根据日志所有的提示,我们还需要修改的规则有
mod-long: count 3 --> 2

<function name="mod-long" class="io.mycat.route.function.PartitionByMod">
        <!-- how many data nodes -->
        <property name="count">2</property>
</function>

再次启动 mycat,在 wrapper.log 和 mycat.log 中会得到启动成功的信息

四、测试

在 mycat.log 日志中搜索 serverport,可以看到 serverport=8066,使用 mysql 连接这个端口,可以查到根据我们配置好的信息创建的数据库和表

./mysql -u root -p123456 -P8066 -h127.0.0.1

mysql> show databases;
+----------+
| DATABASE |
+----------+
| TESTDB   |
+----------+
1 row in set (0.01 sec)

mysql> show tables;
+------------------+
| Tables in TESTDB |
+------------------+
| company          |
| employee         |
| goods            |
| hotnews          |
| travelrecord     |
+------------------+
5 rows in set (0.00 sec)

虽然查到了 tables,但其实那些都是空的,所以还需要我们手动创建一次,这里以 employee 为例

create table employee (id int not null primary key,name varchar(100),sharding_id int not null);

然后插入数据

insert into employee(id,name,sharding_id) values(1,'leader us',10000);
insert into employee(id,name,sharding_id) values(2, 'me',10010);
insert into employee(id,name,sharding_id) values(3, 'mycat',10000);
insert into employee(id,name,sharding_id) values(4, 'mydog',10010);

分别到两个节点中的数据库查看,可以看到在数据库1中有:
1 leader us 10000
3 mycat 10000
数据库2中有:
2 me 10010
4 mydog 10010

这说明分片成功了

相关文章

  • Redis 官网集群步骤

    1. 创建目录 要让集群正常运作至少需要三个主节点, 不过在刚开始试用集群功能时, 强烈建议使用六个节点: 其中三...

  • Redis 官网集群步骤

    一、环境介绍 1. mysql 节点1环境 操作系统: centos x64 数据库名: lujw_mycat_d...

  • Mac Redis 配置

    这是以redis 3.0 为基础,从官网来的基础安装步骤。官网地址:http://redis.io/downloa...

  • Redis:集群方案

    单实例往往不能满足生产环境的需求,需要引入Redis集群,比较常见的Redis集群方案有主从复制、哨兵模式、官网的...

  • redis部署

    centos安装步骤 官网: https://redis.io/download redis配置 设置环境变量 最...

  • Redis集群(一)

    Redis 集群概念(一) 本文提取至官网文档 Redis集群介绍 Redis 集群是一个提供在多个Redis间节...

  • 使用redis cluster搭建集群方法

    本方法记录在单机环境下,启动3个redis实例来模拟多个机器进行集群部署。 redis下载 进入redis官网ht...

  • Redis集群搭建

    第1集 Redis集群搭建这回事 简介:Redis集群搭建实战,赠送Redis图文搭建教程 安装redis处理步骤...

  • Redis学习记录

    Redis简介 redis官网 https://redis.io/ redis中国官网 http://redis....

  • 2020-06-15--redis的安装,可视化工具,以及测试

    安装redis 官网地址:https://redis.io/下载安装步骤:运行安装程序 点击next 设置安装位置...

网友评论

      本文标题:Redis 官网集群步骤

      本文链接:https://www.haomeiwen.com/subject/srkppxtx.html