简单redis集群搭建-----redis读写分离

注:此博客或为自己所写,以供自己学习记录

废话不说了,直接开始整吧。。。

一个简单架构图

上边的简单架构图就体现了我需要做的事情,从架构图中可以看出是一个三个机器的集群,那么就首先需要准备三台服务器,这里我使用虚拟机来搭建,首先装好三台centos的机器,展示一下我的三台机器吧(机器的名称说明不了什么,其实这三台虚拟机是我为搭建服务器集群准备的,正好用上,哈哈):

这里我将tomcatserver2作为主机,ngnixserver作为从机1,databaseserver作为从机2

准备好机器后,就是在linux系统上安装Redis了,简单说一下在linux上安装Redis的过程吧:

1.去Redis官网下载一个Redis在linux系统上的压缩包(版本自选),大概长这样:

2.使用xftp传送到linux系统里边

3.使用  tar -zxvf 压缩包名,对其进行解压

4.进入解压后的文件夹,使用make命令进行编译。

   注意:由于Redis使用C语言编写,编译时需要安装c环境,所以没有安装c环境的话,在运行make命令时会报错,如果报错的话可以使用yum install gcc-c++命令安装c环境。安装好后运行一下make distclean(清楚上次编译失败的一些文件)命令后再重新运行make命令进行编译。

5.运行make install进行Redis的安装,安装成功后进入/usr/local/bin目录后你会发现出现了如下文件,说明安装成功:

6.安装成功后还需要对redis.conf做一下配置。这些配置包括允许外网链接Redis,主要配置有:

打开redis.conf文件找到bind,将127.0.0.1修改为0.0.0.0,即允许所有IP链接。

找到daemonize将原来的no修改为yes,即开启以守护进程启动。

7.开启6379端口:

vim /etc/sysconfig/iptables,在打开的文件中加入

-A INPUT -m state --state NEW -m tcp -p tcp -s 127.0.0.1 --dport 6379 -j ACCEPT

然后保存退出后,运行service iptables restart重启即可。

---------------------------------------------------华丽分割线-----------------------------------------------------

经过以上一通操作,机器就准备好了,接下来就开始进行集群的配置了:

1.主机器tomcatserver2的配置

其实主机器不需要过多的配置,只需要给主机器设置一个密码:

找到requirepass这里我将密码设置为123456.

2.从机的配置:

找到如下属性,

replicaof <主机IP> <主机端口>

masterauth <主机密码>

appendonly no将no改为yes

3.重启三台机器的redis服务

4.测试

可以使用Jedis集群进行测试,我的测试代码如下:

package service;

import redis.clients.jedis.*;

import java.util.LinkedList;
import java.util.List;

/**
 * Hello world!
 *
 */
public class App 
{
    private static ShardedJedisPool pool;
    static {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(100);
        config.setMaxIdle(50);
        config.setMaxWaitMillis(3000);
        config.setTestOnBorrow(true);
        config.setTestOnReturn(true);
        // 链接主机
        JedisShardInfo jedisShardInfo1 = new JedisShardInfo("192.168.199.151", 6379);
        jedisShardInfo1.setPassword("123456");
        List<JedisShardInfo> list = new LinkedList<JedisShardInfo>();
        list.add(jedisShardInfo1);
        pool = new ShardedJedisPool(config, list);
    }

    public static void main(String[] args) {
        ShardedJedis jedis = pool.getResource();
        String keys = "myname";
        //主机写入信息,同步到从机
        String vaule = jedis.set(keys, "mfx");
        System.out.println("主机:"+jedis.get(keys));
        //链接从机1
        Jedis jedis1=new Jedis("192.168.199.116");
        //从机可读出数据
        System.out.println("从机1:"+jedis.get(keys));
        //链接从机2
        Jedis jedis2=new Jedis("192.168.199.233");
        System.out.println("从机1:"+jedis.get(keys));
    }
}

好了,现在主库可以负责写操作,从库负责读操作,系统性能也会大大提高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浪舟子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值