Redis集群部署

l单节点redis安装
1.wget http://download.redis.io/releases/redis-3.0.1.tar.gz
2.tar zxvf redis-3.0.1.tar.gz
3.cd redis-3.0.1
4.make install

l集群

java客户端实现集群http://www.tuicool.com/articles/V32iei
集群介绍http://www.it165.net/admin/html/201404/2709.html
集群用jedis链接报错http://jomolangma.com/?p=87
redis-cluster研究和使用 http://hot66hot.iteye.com/blog/2050676
集群节点的添加和删除 http://blog.csdn.net/xu470438000/article/details/42972123

l集群的安装

先创建多个文件夹

mkdir cluster-test
cd cluster-test
mkdir 7000 7001 7002 7003 7004 7005

然后在每个文件夹里创建文件 redis.conf。填写内容是,port的值和文件夹名称一样

port 7000
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 5000
appendonly yes

然后用命令分别启动6个服务

../../redis-3.0.1/src/redis-server ./redis.conf

启动集群(在启动集群的时候必须要开通 端口和端口+10000,例如现在开通7000,必须开通17000)

./redis-trib.rb create –replicas 1 192.168.0.110:7000 192.168.0.110:7001 192.168.0.110:7002 192.168.0.110:7003 192.168.0.110:7004 192.168.0.110:7005

l使用集群

redis-cli -c -p 7000

如果在集群发现命令用不了,是因为集群是通过ruby来实现的,所以需要安装

a、安装ruby

yum -y install ruby ruby-rdoc

b、安装gem

wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
gem install redis
“`

c、安装rubygems

wget http://production.cf.rubygems.org/rubygems/rubygems-2.4.7.zip
unzip rubygems-2.4.7.zip
cd rubygems-2.4.7
ruby setup.rb

l集群节点的添加

添加节点和文件,并且创建redis.conf
cd cluster-test
mkdir 7006

1、使用命令启动该节点
2、添加节点到集群(如果该节点被删除,则需要删除上个目录中的node.conf文件)
./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
Redis集群部署_第1张图片
3、查看节点,目的记录下每个节点的名称例如
redis-cli -c -p 7000 cluster nodes
这里写图片描述
4、增加了新的节点之后,这个新的节点可以成为主节点或者是从节点
把这个节点变成主节点,使用redis-trib程序,将集群中的某些哈希槽移动到新节点里面, 这个新节点就成为真正的主节点了
5、执行下面的命令对集群中的哈希槽进行移动
./redis-trib.rb reshard 127.0.0.1:7000
Redis集群部署_第2张图片
移动1000个槽

目标节点,就是7006的ID
这里写图片描述
输入all之后随机分配其他节点槽过来
这里写图片描述
查看当前节点,可以看到已经移动过来了
redis-cli -c -p 7000 cluster nodes
这里写图片描述

l集群删除节点
1、如果删除的节点是主节点,这里我们删除127.0.0.1:7006节点,这个节点有1000个哈希槽
./redis-trib.rb reshard 127.0.0.1:7000
Redis集群部署_第3张图片

输入接受者的ID,为7000端口的id

输入转出者的ID,为7006的ID,并且输入done

转移完成之后需要删除节点,为链接地址,还有要删除的节点名称
./redis-trib.rb del-node 127.0.0.1:7006 8b5b2590aea8aeebac3928592d8a726037fa44aa

使用jedis使用集群 ,默认只需要填写其中一个,也可以写所有的节点,防止某个节点挂掉。
Set jedisClusterNodes = new HashSet<>();
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig();
poolConfig.setMaxIdle(100);
poolConfig.setMaxTotal(300);
jedisClusterNodes.add(new HostAndPort(“192.168.0.225”, 7000));
JedisCluster jc = new JedisCluster(jedisClusterNodes,poolConfig);

测试环境集群地址

192.168.0.225 7000
192.168.0.226 7000
192.168.0.227 7000
192.168.0.228 7000
192.168.0.229 7000
192.168.0.230 7000

你可能感兴趣的:(java,redis,集群,分布式)