搭建Redis集群

由于电脑硬件限制,不可能搭建真正的集群,所以只能搭建伪集群来供学习。

1.# yum install ruby -y
   1.1 后面需要用到 ruby 脚本
2.# yum install rubygems -y
   2.1 安装 ruby 包管理器
3.# gem install redis-3.0.0.gem
   3.1 脚本需要 ruby 其他包,所以安装这个 redis.gem
4.# mkdir reids-cluster
   4.1 在/usr/local 中新建 redis-cluster 文件夹
5.# cp -r bin ../redis-cluster/redis01
    5.1 把之前安装好的 redis/bin 复制到 redis-cluster 中并起名为 redis01
6.# rm -rf dump.rdb
    6.1 删除掉 redis01 中 dump.rdb 数据库文件
7.# vi redis.conf
    7.1 修改 redis01 中端口号为 7001, 找到 port 后面修改为 7001
  7.2 去掉 cluster-enabled yes 前面的注释
  7.3 如果之前设置过密码,注释掉密码.如果没有设置过过略 7.3 这步骤
8.# cp -r redis01 redis02
    cp -r redis01 redis03
   cp -r redis01 redis04
   cp -r redis01 redis05
  cp -r redis01 redis06
  8.1 把 redis01 文件夹在复制 5 份,分别起名为 redis02,redis03,redis04,redis05,redis06
9# vi redis02/redis.conf
   9.1 此命令需要在 redis-cluster 下执行
  9.2 把 其 他 5 个 文 件 夹 中 redis.conf 中 port 修 改 成 不 同 的 值 , 分 别 为
   7002,7003,7004,7005,7006
10.# cp *.rb /usr/local/redis-cluster/
   10.1 去 redis 解压目录中 src 下执行此命令
   10.2 把 redis-trib.rb 复制到 reids-cluster 中.
11.# vi startall.sh
   cd redis01
  ./redis-server redis.conf
  cd ..
  cd redis02
  ./redis-server redis.conf
  cd ..
  cd redis03
  ./redis-server redis.conf
cd ..
  cd redis04
  ./redis-server redis.conf
  cd ..
  cd redis05
  ./redis-server redis.conf
  cd ..  cd redis06
  ./redis-server redis.conf
  cd ..

12由于权限不够,所以要增加权限

   # chmod +x startall.sh
  给脚本设置一个可启动权限
13.# ./startall.sh
    13.1 执行脚本,启动所有 redis 服务
14.# ps aux|grep redis
   14.1 查看所有服务是否启动成功
15.# ./redis-trib.rb create --replicas 1 192.168.192.130:7001 192.168.192.130:7002
    192.168.192.130:7003 192.168.192.130:7004 192.168.192.130:7005 192.168.192.130:7006
   15.1 创建集群
   15.2 在执行时按照提示输入’yes’
16.# ./redis01/redis-cli -h 192.168.10.128 -p 7001 -c
    16.1 进入任意节点测试


此时,集群就搭建成功了。

但是要想外部访问Redis就要开启端口。

vim /etc/sysconfig/iptables

在相应的位置,写上7001:7006.

冒号表示从7001端口到7006端口。

然后重启服务# service iptables restart

在项目中这样来使用

	public void test1() {
		Set<HostAndPort> set=new HashSet<>();
		set.add(new HostAndPort("192.168.226.130", 7001));
		set.add(new HostAndPort("192.168.226.130", 7002));
		set.add(new HostAndPort("192.168.226.130", 7003));
		set.add(new HostAndPort("192.168.226.130", 7004));
		set.add(new HostAndPort("192.168.226.130", 7005));
		set.add(new HostAndPort("192.168.226.130", 7006));
		JedisCluster cluster=new JedisCluster(set);
		String result = cluster.get("a");
		System.out.println(result);
	}

也可以去spring中去配置,把它交给spring来管理。

<!-- 配置jedis连接池 -->
	<bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
		<!-- 最大连接数 -->
		<property name="maxTotal" value="30" />
		<!-- 最大空闲连接数 -->
		<property name="maxIdle" value="10" />
		<!-- 每次释放连接的最大数目 -->
		<property name="numTestsPerEvictionRun" value="1024" />
		<!-- 释放连接的扫描间隔(毫秒) -->
		<property name="timeBetweenEvictionRunsMillis" value="30000" />
		<!-- 连接最小空闲时间 -->
		<property name="minEvictableIdleTimeMillis" value="1800000" />
		<!-- 连接空闲多久后释放, 当空闲时间>该值 且 空闲连接>最大空闲连接数 时直接释放 -->
		<property name="softMinEvictableIdleTimeMillis" value="10000" />
		<!-- 获取连接时的最大等待毫秒数,小于零:阻塞不确定的时间,默认-1 -->
		<property name="maxWaitMillis" value="1500" />
		<!-- 在获取连接的时候检查有效性, 默认false -->
		<property name="testOnBorrow" value="true" />
		<!-- 在空闲时检查有效性, 默认false -->
		<property name="testWhileIdle" value="true" />
		<!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true -->
		<property name="blockWhenExhausted" value="false" />
	</bean>
	
	
	
	<!-- jedisCluster -->
	<bean id="jedisClients" class="redis.clients.jedis.JedisCluster">
		<constructor-arg name="poolConfig" ref="jedisPoolConfig"/>
		<constructor-arg name="nodes">
			<set>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.226.130"/>
					<constructor-arg name="port" value="7001"/>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.226.130"/>
					<constructor-arg name="port" value="7002"/>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.226.130"/>
					<constructor-arg name="port" value="7003"/>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.226.130"/>
					<constructor-arg name="port" value="7004"/>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.226.130"/>
					<constructor-arg name="port" value="7005"/>
				</bean>
				<bean class="redis.clients.jedis.HostAndPort">
					<constructor-arg name="host" value="192.168.226.130"/>
					<constructor-arg name="port" value="7006"/>
				</bean>
			</set>
		</constructor-arg>
	</bean>
</beans>

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值