您的位置:首页 > 数据库 > Redis

在Linux上安装Redis集群

2017-04-17 17:02 295 查看
1、上传redis-3.0.0.tar.gz源码包

cd /home/redis/

rz

注:本人使用rz上传,安装方式:

yum install -y lszrz

2、解压redis源码包

tar -zxvf redis-3.0.0.tar.gz

3、编译redis源码

cd /home/redis/redis-3.0.0

make

4、安装redis到/usr/local/redis-cluster

make install PREFIX=/usr/local/redis-cluster/

5、修改redis安装后的默认文件名

cd /usr/local/redis-cluster/

mv bin redis01

6、从redis源码复制配置文件到redis01

cd redis01

cp /home/redis/redis-3.0.0/redis.conf ./

7、编辑redis01配置文件

daemonize yes // 启用静默启动方式

port 6319 // 修改端口号

cluster-enabled yes // 启用集群

保存退出:/wq

8、复制redis01实例,创建多个redis节点

cd //usr/local/redis-cluster

cp -r redis01 redis02

cp -r redis01 redis03

cp -r redis01 redis04

cp -r redis01 redis05

cp -r redis01 redis06

9、修改每个实例的端口号,分别为6319、6329、6339、6349、6359、6369

vi redis02/redis.conf

10、上传redis-3.0.0.gem到/usr/local/redis-cluster/,并安装

gem install redis-3.0.0.gem

如果-bash: gem: command not found,则安装gem指令:

yum -y install rubygems-devel

11、从redis源码包复制ruby脚本到/usr/local/redis-cluster/

cp /home/redis/redis-3.0.0/src/*.rb /usr/local/redis-cluster/

12、编写批量启动redis服务sh脚本start-redis-cluster.sh

cd /usr/local/redis-cluster/redis01

./redis-server redis.conf 

cd /usr/local/redis-cluster/redis02

./redis-server redis.conf 

cd /usr/local/redis-cluster/redis03

./redis-server redis.conf 

cd /usr/local/redis-cluster/redis04

./redis-server redis.conf 

cd /usr/local/redis-cluster/redis05

./redis-server redis.conf 

cd /usr/local/redis-cluster/redis06

./redis-server redis.conf 

添加执行权限

chmod 777 start-redis-cluster.sh

13、启动redis服务

./start-redis-cluster.sh

14、安装redis集群

--replicas 1参数,代表每个master实例,有一个slave实例

./redis-trib.rb create --replicas 1 192.168.120.12:6319 192.168.120.12:6329 192.168.120.12:6339 192.168.120.12:6349 192.168.120.12:6359 192.168.120.12:6369

安装中可能出现的问题,请参考http://blog.csdn.net/ownfire/article/details/46624005

配置完所有主节点后,报" ERR Invalid node address specified"

由于Redis-trib.rb 对域名或主机名支持不好,故在创建集群的时候要使用ip:port的方式

redis-trib.rb create ip1:port1 ip2:port2 ip3:port3

创建集群时报某个err slot 0 is already busy (redis::commanderror)

这是由于之间创建集群没有成功,需要将nodes.conf和dir里面的文件全部删除(注意不要删除了redis.conf),然后重启redis服务

15、jedis测试

/**
* ClassName: JedisClusterTest <br/>
* Description: test JedisCluster <br/>
* Date: 2017年4月17日 下午3:44:26 <br/>
* <br/>
*
* @author 1139162887@qq.com(邮箱)
*
*         修改记录
* @version 产品版本信息 yyyy-mm-dd 姓名(邮箱) 修改信息<br/>
*
*/
public class JedisClusterTest {
@Test
public void test() {
Set<HostAndPort> nodes = new HashSet<>();
nodes.add(new HostAndPort("192.168.120.12", 6319));
nodes.add(new HostAndPort("192.168.120.12", 6329));
nodes.add(new HostAndPort("192.168.120.12", 6339));
nodes.add(new HostAndPort("192.168.120.12", 6349));
nodes.add(new HostAndPort("192.168.120.12", 6359));
nodes.add(new HostAndPort("192.168.120.12", 6369));

JedisCluster cluster = new JedisCluster(nodes);
String address = cluster.set("address", "北京市");
String pAddress = cluster.get("address");
System.out.println(address + "==" + pAddress);
cluster.close();
System.out.println("game over!");
}
}

测试结果:

OK==北京市
game over!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  redis 集群