redis主从复制之linux环境配置

阅读更多

 redis 主从复制配置和使用都非常简单。通过主从复制可以允许多个 slave server 拥有和

master server 相同的数据库副本。 

 

redis主从复制有以下特点:

(1)master :slave = 1:n (即:一个master可以拥有多个slave)

(2)slave除了能连接到master以外,还可以连接到其他slave

(3)主从复制不会阻塞master操作,主从复制在进行时,master仍然可以继续处理它的client请求

 

一、在Linux端的主从复制。

 

首先,在redis的安装目录下(redis.conf所在目录),复制一个redis.conf命名为redis_slave.conf:

 

cp redis.conf redis_slave.conf

 

修改redis_slave.conf文件,修改如下:

# slaveof   
slaveof 127.0.0.1 6379 

 

 并指定端口:

 

port 6378

 

启动master端:


redis主从复制之linux环境配置_第1张图片
 

开启一个master客户端并查看信息:

src/redis-cli -p 6379

 
redis主从复制之linux环境配置_第2张图片
 可以看出,此客户端请求的服务端的信息,角色为master(主),连接的slave为1个。

 

同理,开启slave端


redis主从复制之linux环境配置_第3张图片
 

启动slave端的客户端:

src/redis-cli -p 6378 
127.0.0.1 : 6378>info

 
redis主从复制之linux环境配置_第4张图片
 

可以看出,角色为slave,以及它连接到的master的信息。

 

测试:在master端(cli端)指定一个key,在slave端(该cli端)get该key,可以看到刚才set的东西,说明redis的master-slave配置成功!(set get过程略)。

 

二、Jedis(redis Java版)配置(涉及jar包:jedis-2.x)

 

以下ShardedJedisPool为切片池:

 // 池基本配置 
        JedisPoolConfig config = new JedisPoolConfig(); 
        config.setMaxIdle(15); 
        config.setMaxWaitMillis(1000l); 
        config.setTestOnBorrow(false); 
        // slave链接 
        List shards = new ArrayList(); 
        shards.add(new JedisShardInfo("127.0.0.1", 6379, "master")); 
        shards.add(new JedisShardInfo(String ip1, 6379, "slave"));
        shards.add(new JedisShardInfo(String ip2, 6379, "slave"));

        // 构造池 
//       pool = new JedisPool(config,"127.0.0.1",6379, 10000); //容忍的超时时间
        ShardedJedisPool pool = new ShardedJedisPool(config, shards);

 在本机(127.0.0.1)和另外几个和你“集群”的机子上分别启动redis服务端(需先保证不会出现socket连接错误),这样在任一机子上set一个key之后,另外的机器上可以get到该key对应的value。

  • redis主从复制之linux环境配置_第5张图片
  • 大小: 33.4 KB
  • redis主从复制之linux环境配置_第6张图片
  • 大小: 6.3 KB
  • redis主从复制之linux环境配置_第7张图片
  • 大小: 40.8 KB
  • redis主从复制之linux环境配置_第8张图片
  • 大小: 5.5 KB
  • redis主从复制之linux环境配置_第9张图片
  • 大小: 5.5 KB
  • 查看图片附件

你可能感兴趣的:(redis,jedis,主从复制,测试)