Skip to content

Commit 3dae78e

Browse files
author
孟祥程
committed
redis
1 parent 38670ff commit 3dae78e

18 files changed

Lines changed: 1154 additions & 0 deletions

src/com/msj/redis/ReadMe.md

Lines changed: 491 additions & 0 deletions
Large diffs are not rendered by default.
285 KB
Binary file not shown.
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/********************* Redis 3.0 集群搭建 ********************************/
2+
在redis3.0以前,提供了Sentinel工具来监控各Master的状态;
3+
如果Master异常,则会做主从切换,将slave作为master,将master作为slave。
4+
其配置也是稍微的复杂,并且各方面表现一般。现在redis3.0已经支持集群的容错功能,并且非常简单。
5+
下面我们来进行学习下redis3.0如何搭建集群。
6+
集群搭建:至少要三个master
7+
------------------------------------------------------------------------
8+
第一步:创建一个文件夹redis-cluster,然后在其下面分别创建6个文件夹如下:
9+
(1)mkdir -p /usr/local/redis-cluster
10+
(2)mkdir 7001、mkdir 7002、mkdir 7003、mkdir 7004、mkdir 7005、mkdir 7006
11+
12+
第二步:把之前的redis.conf配置文件分别copy到700*下,进行修改各个文件内容,也就是对700*下的每一个copy的redis.conf文件进行修改!如下:(1)daemonize yes
13+
(2)port 700*(分别对每个机器的端口号进行设置)
14+
(3)bind 192.168.1.171(必须要绑定当前机器的ip,不然会无限悲剧下去哇..深坑勿入!!!)
15+
(4)dir /usr/local/redis-cluster/700*/(指定数据文件存放位置,必须要指定不同的目录位置,不然会丢失数据,深坑勿入!!!)
16+
(5)cluster-enabled yes(启动集群模式,开始玩耍)
17+
(6)cluster-config-file nodes700*.conf(这里700x最好和port对应上)
18+
(7)cluster-node-timeout 5000
19+
(8)appendonly yes
20+
21+
第三步:注意每个文件要修改端口号,bind的ip,数据存放的dir,并且nodes文件都需要进行修改!
22+
23+
第四步:由于redis集群需要使用ruby命令,所以我们需要安装ruby
24+
(1)yum install ruby
25+
(2)yum install rubygems
26+
(3)gem install redis (安装redis和ruby的接口)
27+
28+
第五步:分别启动6个redis实例,然后检查是否启动成功
29+
(1)usr/local/redis/bin/redis-server /usr/local/redis-cluster/700*/redis.conf
30+
(2)ps -el | grep redis 查看是否启动成功
31+
32+
第六步:首先到redis3.0的安装目录下,然后执行redis-trib.rb命令。
33+
(1)cd /usr/local/redis3.0/src
34+
(2)./redis-trib.rb create --replicas 1 192.168.1.171:7001 192.168.1.171:7002 192.168.1.171:7003 192.168.1.171:7004 192.168.1.171:7005 192.168.1.171:7006
35+
36+
第七步:到此为止我们集群搭建成功!进行验证:
37+
(1)连接任意一个客户端即可:./redis-cli -c -h -p (-c表示集群模式,指定ip地址和端口号)如:/usr/local/redis/bin/redis-cli -c -h 192.168.1.171 -p 700*
38+
(2)进行验证:cluster info(查看集群信息)、cluster nodes(查看节点列表)
39+
(3)进行数据操作验证
40+
(4)关闭集群则需要逐个进行关闭,使用命令:usr/local/redis/bin/redis-cli -c -h 192.168.1.171 -p 700* shutdown
41+
42+
第八步:(补充)
43+
友情提示:当出现集群无法启动时,删除临时的数据文件,再次重新启动每一个redis服务,然后重新构造集群环境。
44+
45+
第九步:(集群操作文章)
46+
redis-trib.rb官方群操作命令: http://redis.io/topics/cluster-tutorial
47+
推荐博客: http://blog.51yip.com/nosql/1726.html/comment-page-1
48+
49+
50+
51+
52+
53+
54+
55+
56+
57+
58+
59+
60+
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<beans xmlns="http://www.springframework.org/schema/beans"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
4+
xmlns:context="http://www.springframework.org/schema/context"
5+
xmlns:jee="http://www.springframework.org/schema/jee" xmlns:tx="http://www.springframework.org/schema/tx"
6+
xmlns:aop="http://www.springframework.org/schema/aop"
7+
xsi:schemaLocation="
8+
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
9+
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
10+
11+
<context:property-placeholder location="classpath:redis.properties" />
12+
<context:component-scan base-package="com.x.redis.dao">
13+
</context:component-scan>
14+
<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
15+
<property name="maxIdle" value="${redis.maxIdle}" />
16+
<property name="maxTotal" value="${redis.maxActive}" />
17+
<property name="maxWaitMillis" value="${redis.maxWait}" />
18+
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
19+
</bean>
20+
21+
<bean id="hostport1" class="redis.clients.jedis.HostAndPort">
22+
<constructor-arg name="host" value="10.16.68.92" />
23+
<constructor-arg name="port" value="7770" />
24+
</bean>
25+
<bean id="hostport2" class="redis.clients.jedis.HostAndPort">
26+
<constructor-arg name="host" value="10.16.68.92" />
27+
<constructor-arg name="port" value="7771" />
28+
</bean>
29+
<bean id="hostport3" class="redis.clients.jedis.HostAndPort">
30+
<constructor-arg name="host" value="10.16.68.92" />
31+
<constructor-arg name="port" value="7772" />
32+
</bean>
33+
<bean id="hostport4" class="redis.clients.jedis.HostAndPort">
34+
<constructor-arg name="host" value="10.16.68.92" />
35+
<constructor-arg name="port" value="7773" />
36+
</bean>
37+
<bean id="hostport5" class="redis.clients.jedis.HostAndPort">
38+
<constructor-arg name="host" value="10.16.68.92" />
39+
<constructor-arg name="port" value="7774" />
40+
</bean>
41+
<bean id="hostport6" class="redis.clients.jedis.HostAndPort">
42+
<constructor-arg name="host" value="10.16.68.92" />
43+
<constructor-arg name="port" value="7775" />
44+
</bean>
45+
46+
<bean id="redisCluster" class="redis.clients.jedis.JedisCluster">
47+
<constructor-arg name="nodes">
48+
<set>
49+
<ref bean="hostport1" />
50+
<ref bean="hostport2" />
51+
<ref bean="hostport3" />
52+
<ref bean="hostport4" />
53+
<ref bean="hostport5" />
54+
<ref bean="hostport6" />
55+
</set>
56+
</constructor-arg>
57+
<constructor-arg name="timeout" value="6000" />
58+
<constructor-arg name="poolConfig">
59+
<ref bean="jedisPoolConfig" />
60+
</constructor-arg>
61+
</bean>
62+
</beans>
1.29 MB
Binary file not shown.

0 commit comments

Comments
 (0)