文档章节

Redis3.0 Cluster集群安装

E
 Elisabth
发布于 2015/04/16 11:13
字数 951
阅读 1966
收藏 31
  • 部署图

同一物理机部署6个Redis进程,7001、7002、7003端口为Master进程、7004、7005、7006端口为Slave进程。多机部署时注意配对的Master和Slave不在同一物理机上即可。

  • 安装Redis

1. 下载源代码文件redis-3.0.0.tar.gz
2. 解压tar -xzvf redis-3.0.0..tar.gz
3. 进入目录 cd redis-3.0.0
4. 编译make
5. 安装 make install
6. 创建6个目录用来存放每个进程的配置文件和数据mkdir 7001至7006
7. cp redis.conf 7001/至7006/文件夹下
至此7001至7006这6个目录下均有redis.conf配置件。


  • 修改配置文件

6个redis.conf配置文件相同,注意修改下黄色字体部分的内容即可,其他都相同

配置选项

描述

daemonize

yes

 

logfile

"/opt/log/redis-7001.log"

 

databases

1

 

dir

/opt/oracle/redis-3.0.0/7001

用来存放数据的地方

cluster-enabled

yes

 

cluster-config-file

/opt/oracle/redis-3.0.0/7001/nodes.conf

 

cluster-node-timeout

15000

 

cluster-migration-barrier

1

 

cluster-require-full-coverage

yes

只要集群中有一对Master-Slave不可用时,整个集群不可用

  • 启动Redis
按照如下命令分别启动6个Redis进程
[root@inf-p01 redis-3.0.0]# redis-server 7001/redis.conf
启动完毕后,6个Redis进程尚未构成集群。

  • 安装Ruby
1. 下载源代码文件ruby-2.1.6.tar.gz
2. 解压tar -xzvf ruby-2.1.6.tar.gz
3. 进入目录 cd ruby-2.1.6
4. 运行./configure –prefix=/usr/opt/oracle/ruby
5. 编译make
6. 安装 make install
7. 配置环境变量
/etc/profile文件中增加export PATH=/usr/opt/oracle/ruby/bin:$PATH
8. 执行source /etc/profile,使环境变量生效
9. 验证ruby是否安装成功,执行ruby –v,出现如下输出,即ruby安装OK。
ruby 2.1.6p336 (2015-04-13 revision 50298) [x86_64-linux]

  • 安装redis gem
1. 下载源文件redis-3.2.1.gem
2. 安装 gem install –l redis-3.2.1.gem
如果安装redis-3.2.1.gem出错,请执行如下步骤
安装zlib
1. tar -xzvf zlib-1.2.8.tar.gz
2. cd zlib-1.2.8
3. ./configure --prefix=/opt/zlib
4. make
5. make install
安装ruby-zlib
1. cd ruby-2.1.6/ext/zlib
2. ruby ./extconf.rb --with-zlib-dir=/opt/zlib
3. make
4. make install
最后安装redis-3.2.1.gem
gem install -l redis-3.2.1.gem

  • 启动集群
1. 进入src目录 cd /opt/oracle/redis-3.0.0/src
2. 执行./redis-trib.rb create --replicas 1 192.168.126.131:7001 192.168.126.131:7002 192.168.126.131:7003 192.168.126.131:7004 192.168.126.131:7005 192.168.126.131:7006
黄色部分为本机IP,出现如下日志即为集群部署OK
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
多机部署时,只要在其中一台机器上执行./ redis-trib.rb就可以了

  • 验证
1. 进入redis控制台 redis-cli –c –p 7001
2. set foo car
3. get foo
如果能取出数据即集群安装OK。

  • 使用
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
	<property name="maxTotal" value="30" />
	<property name="maxIdle" value="10" />
	<property name="minIdle" value="10" />
	<property name="blockWhenExhausted" value="true"></property>
	<property name="maxWaitMillis" value="3000" />
	<property name="testOnBorrow" value="false" />
	<property name="testOnReturn" value="false" />
	<property name="testWhileIdle" value="false" />
</bean>
<bean id="jedisCluster" class="redis.clients.jedis.JedisCluster">
	<constructor-arg index="0">
		<set>
			<bean class="redis.clients.jedis.HostAndPort">
				<constructor-arg index="0" value="192.168.126.131" />
				<constructor-arg index="1" value="7001" type="int" />
			</bean>
			<bean class="redis.clients.jedis.HostAndPort">
				<constructor-arg index="0" value="192.168.126.131" />
				<constructor-arg index="1" value="7002" type="int" />
			</bean>
			<bean class="redis.clients.jedis.HostAndPort">
				<constructor-arg index="0" value="192.168.126.131" />
				<constructor-arg index="1" value="7003" type="int" />
			</bean>
			<bean class="redis.clients.jedis.HostAndPort">
				<constructor-arg index="0" value="192.168.126.131" />
				<constructor-arg index="1" value="7004" type="int" />
			</bean>
			<bean class="redis.clients.jedis.HostAndPort">
				<constructor-arg index="0" value="192.168.126.131" />
				<constructor-arg index="1" value="7005" type="int" />
			</bean>
			<bean class="redis.clients.jedis.HostAndPort">
				<constructor-arg index="0" value="192.168.126.131" />
				<constructor-arg index="1" value="7006" type="int" />
			</bean>
		</set>
	</constructor-arg>
	<constructor-arg index="1" value="15000" type="int"></constructor-arg>
	<constructor-arg index="2" ref="jedisPoolConfig"></constructor-arg>
</bean>



@Test
public void test8(){
	System.out.println(jedisCluster);
	for(int i=0;i<1000;i++){
		jedisCluster.set(""+i, ""+i);
	}
	//使用时不用关闭的,JedisCluster内部会自动关闭
}




© 著作权归作者所有

E
粉丝 1
博文 3
码字总数 2227
作品 0
南京
私信 提问
加载中

评论(3)

E
Elisabth 博主

引用来自“猫神”的评论

要把运行redis的服务器hosts改成实际的,不能是127.0.0.1,否则客户端连上去会报timeout

jedis client 2.7.2也可以连接

可惜spring-redis-data这个包好像找不到最新的,暂时不能把redis集群和spring redistemple结合
maven中心有最新的spring-data-redis包,http://mvnrepository.com/
猫神
猫神
要把运行redis的服务器hosts改成实际的,不能是127.0.0.1,否则客户端连上去会报timeout

jedis client 2.7.2也可以连接

可惜spring-redis-data这个包好像找不到最新的,暂时不能把redis集群和spring redistemple结合
S
Snowfox_66
楼主用的是jedis几?
Redis3.0集群部署(centos6.5)

更多可以参考:http://redis.io/官方网站 要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,生产环境中可以使用6台服务器,对应的redis...

chaun
2016/05/13
175
0
redis学习笔记---redis集群

一、介绍 redis集群是一个可以在多个节点之间进行数据共享的设施,redis集群提供如下两个好处 1:将数据自动切分(split)到多个节点 2:当集群中的某一个节点故障时,redis还可以继续处理客户...

ivan-Zhao
2015/12/16
612
4
Redis3.0集群安装

一、准备环境 (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) node11:7000 node11:7001 ...

xiaozhou18
2016/12/12
16
0
redis3.0.4 集群安装步骤

转载至:http://blog.csdn.net/xu470438000/article/details/42971091 Redis集群部署文档(Centos6.5 minal) (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为...

奇葩界张三
2018/06/29
0
0
Redis3.0集群部署(centos系统)

(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 192.168.1.160:7000 192.168.1.160:7001 ...

超人学院
2015/06/09
173
0

没有更多内容

加载失败,请刷新页面

加载更多

浅谈梯子游戏三门打法技巧走势攻略教程(学会稳稳上岸)

摘要:那么下面我就给大家总结一下技巧和玩法!一、玩梯子的前期准备:1,最重要是zi金准备,提前做好ben金准备能保证自己的zi金链不断,稳中求胜。2,其次是止sun底线,风险控制一定要懂得舍弃,买彩...

V_6696089
34分钟前
8
0
今天发布 需求登记表,不戴眼镜开发的成果

今天是不戴眼镜调理第八天 之前带五百度眼睛0.5 现在是做了三次调理,通常,成人比青少年要慢些 明天正式学习 调理技术 最近不怎么开电脑做开发,发现时间多了许多 虽然想把开发缓一阵子,但...

蒋志祥
42分钟前
4
0
Linux 之docker部署,走过的那些坑

初次使用docker, 多有不足,这里把坑一点点的记下来 概念篇 docker 是什么? 太多文字不同,书读的少, 不懂大大道理; 在我的理解, 它就是个沙箱环境; 在linux中 ,独立进程, 有着自己的小世界 使...

莫库什勒
56分钟前
5
0
vue class绑定 组件

本文转载于:专业的前端网站➬vue class绑定 组件 当在一个自定义组件上使用 class 属性时,这些类将被添加到该组件的根元素上面。这个元素上已经存在的类不会被覆盖。 例如,如果你声明了这个...

前端老手
今天
4
0
exist和in

exist和in select ..from table where exist (子查询) ; select ..from table where 字段 in (子查询) ; 如果主查询的数据集大,则使用In,效率高。 如果子查询的数据集大,则使用exist,效率高...

潦草的犀牛
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部