Redis集群搭建

来源:互联网 发布:什么是网络媒介 编辑:程序博客网 时间:2024/06/05 09:16
Redis集群中应该至少有三个节点,每个节点有一备份节点。需要6台服务器。做试验我们可以搭建伪分布式,需要6个redis实例。命名redis1到redis6,端口分别分配9001到9006

环境: CentOS
准备一个实例:
第一步:安装gcc编译环境
yum install gcc-c++
第二步:解压
tar -zxvf redis-3.2.0.tar.gz
第三步:make
第四步:make install PREFIX=/usr/local/redis
第五步:复制redis-3.2.0/redis.conf到/usr/local/redis的安装目录
修改redis.conf, 改deamonize yes

redis集群搭建

第一步:创建目录/usr/local/redis_cluster ,复制6个/usr/local/redis到/usr/local/redis_cluster,命名redis1到redis6
第二步:修改每个redis实例下配置文件redis.conf 打开Cluster-enable yes前面的注释,port改成不一样7001到7006
第三步:需要一个ruby脚本。在redis源码文件夹下的redis-3.2.0/src目录下。redis-trib.rb
第四步:把redis-trib.rb文件复制到到/usr/local/redis-cluster目录下。
第五步:执行ruby脚本之前,需要安装ruby环境。
1、yum install ruby
2、yum install rubygems
3、安装redis-trib.rb运行依赖的ruby的包。

gem install redis-3.0.0.gem


第六步:启动所有的redis实例。
./redis-server redis.conf
第七步:使用redis-trib.rb创建集群。

./redis-trib.rb create --replicas 1 192.168.1.150:9001 192.168.1.150:9002 192.168.1.150:9003 192.168.1.150:9004 192.168.1.150:9005  192.168.1.150:9006

用Jedis连接redis集群
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.0.0</version>
</dependency>

@Test

public void testJedisCluster()throws Exception {

//创建一个JedisCluster对象

Set<HostAndPort> nodes = new HashSet<>();

nodes.add(new HostAndPort("192.168.1.150", 9001));

nodes.add(new HostAndPort("192.168.1.150", 9002));

nodes.add(new HostAndPort("192.168.1.150", 9003));

nodes.add(new HostAndPort("192.168.1.150", 9004));

nodes.add(new HostAndPort("192.168.1.150", 9005));

nodes.add(new HostAndPort("192.168.1.150", 9006));

//在nodes中指定每个节点的地址

//jedisCluster在系统中是单例的。

JedisCluster jedisCluster = new JedisCluster(nodes);

jedisCluster.set("name","zhangsan");

jedisCluster.set("value","100");

String name = jedisCluster.get("name");

String value = jedisCluster.get("value");

System.out.println(name);

System.out.println(value);

//系统关闭时关闭jedisCluster

jedisCluster.close();

}