0717-7821348
新闻中心

公司动态

您现在的位置: 首页 > 新闻中心 > 公司动态
500万彩票网走势图手机版-轻松建立 Redis 缓存高可用集群
2019-11-04 22:06:01

1、Redis集群计划比较

(1)岗兵形式

在redis3.0曾经的版别要完结集群一般是凭借岗兵sentinal东西来监控master节点的状况,假如master节点反常,则会做主从切换,将某一台slave作为master,岗兵的装备稍微杂乱,而且功用和高可用性等各方面体现一般,特别是在主从切换的瞬间存在拜访瞬断的状况

(2)高可用集群形式

redis集群是一个由多个主从节点群组成的分布式服务器群,它具有仿制、高可用和分片特性。Redis集群不需求sentinal监控岗兵也能完结节点移除和毛病搬运的功用。需求将每个节点设置成集群形式,这种集群形式没有中心节点,可水平扩展很多个,依据官方文档供给现在能够扩展到1000节点。redis集群的功用和高可用性均优于之前版别的岗兵形式,而且集群装备十分简略,可是也存在瞬断,只能说高可用大大提高了并发量,是相对的,不是肯定的。

2、Redis高可用集群树立

(1)redis装置

下载地址:http://redis.io/download

装置过程:

#装置gcc

yum install gcc

#把下载好的redis-3.0.0-rc2.tag.gz放在/user/local文件夹下,500万彩票网走势图手机版-轻松建立 Redis 缓存高可用集群并解压

tar -zxvf redis-3.0.0-rc2.tag.gz

#进入到解压好的redis-3.0.0目录下,进行编译

make

#进入到redis-3.0.0/src目录下进行装置,装置完结验证src目录下是否现已生成了redis-server和redis-cil

make install

#树立两个文件夹寄存redis指令和装备文件

mkdir -p /user/local/redis/etc

mkdir -p /user/local/redis/bin

#把redis-3.0.0下的redis.conf仿制到/user/local/redis/etc下

cp redis.conf /user/local/redis/etc

#移动redis-3.0.0/src里的几个文件到/user/local/redis/bin下

mv mkreleasehdr.sh reids-benchmark redis-check-aof redis-check-dump redis-cil redis-server /user/local/redis/bin

#发动并指定装备文件

/user/local/redis/bin/redis-server /user/local/redis/etc/redis-conf(留意要运用后台发动,修正redis-conf里的daemonize改为yes)

#验证发动是否成功

ps -ef|grep redis

#检查是否有redis服务或许检查端口

netstat -tu中国铝业npl | grep 6379

#进入redis客户端

/user/local/redis/bin/redis-cil

#退出客户端

quit

#退出redis服务

pkill redis-server

kill 进程号

/user/local/redis/bin/redis-cil shutdown

(2)redis集群树立

redis集群需求至少三个master节点(因为要进行推举),咱们这儿树立三个master节点,而且给每个master再树立一个slave节点,一共6个redis节点,因为节点数较多,所以用一台服务器创立6个redis实例,并将这6个redis实例装备为集群形式,所以这儿树立的是伪集群形式,当然真实的分布式集群的装备办法简直相同,树立伪集群的过程如下:

第一步:在/user/local下创立文件夹redis-cluster,然后在其下面别离建6个文件夹如下:

  1. mkdir -p /user/local/redis-cluster
  2. mkdir 8001、mkdir 8002、mkdir 8003、mkdir 8004、mkdir 8005、mkdir 8006

第二步:把之前的erdis.conf装备文件copy到8001,修正内容如下:

  1. daemonize yes
  2. port 8001(别离对每个机器的端口号进行设置)
  3. bind 192.168.0.60(必需求绑定你当时机器的ip,这儿便利redis集群定位到机器,不绑定可能会呈现循环查找集群节点机器的状况)
  4. dir /user/local/redis-cluster/8001(指定数据文件存储方位,必需求指定不同的目录方位,否则会丢掉数据)
  5. cluster-enabled yes(发动集群形式)
  6. cluster-config-file nodes-8001.conf(这儿800x最好和port对应上)
  7. cluster-node-timeout 5000(超时时刻设置)
  8. appendonly yes

第三步:把修正后的装备文件别离copy到各个文件夹下,留意每个文件夹要修正第2、4、6项的端口号

  1. 能够批量替换: :%s/源字符串/意图字符串/g

第四步:因为redis集群需求运用ruby指令,所以咱们装置ruby

  1. yum install ruby
  2. yum install rubygems
  3. gem install redis --version3.0.0(装置redis和ruby的接口)

第五步:别离发动6个redis实例,然后检查是否发动成功

  1. /user/local/redis/bin/redis-server /user/local/redis-cluster/800*/redis-conf
  2. ps -ef | grep redis 检查是否发动成功

第六步:在redis3的装置目录下履行redis-trib.r500万彩票网走势图手机版-轻松建立 Redis 缓存高可用集群b指令创立整个reids集群

  1. cd/user/local/redis3/src
  2. ./redis-trib.rb create --replicas 1 192.168.0.60:8001 192.168.0.60:8002 192.168.0.60:8003 192.168.0.60:8004 192.168.0.60:8005 192.168.0.60:8006(其间‘1’指的是:master节点/slave
  3. 节点的比值)

第七步:验证集群

  1. 衔接恣意一个客户端即可:./redis-cli -c -h -p(-c表明集群形式,-h指定ip地址和-p端口号)
  2. 如:/user/local/redis/bin/redis-cli -c -h 192.168.0.60 -p 800*
  3. 进行验证:cluster info(检查集群信息)、cluster nodes(检查节点列表)
  4. 进行数据操作验证
  5. 封闭集群,则需求逐一进行封闭,运用指令:
  6. 如:/user/local/redis/bin/redis-cli -c -h 192.168.0.60 -p 800* shutdown

(3)验证代码

public class RedisCluster {
public static void main(String[] args) throws IOException{
Set jedisClusterNode = new HasSet();
jedisClusterNode.add(new HostAndPort("192.168.0.60",8001));
jedisClusterNode.add(new HostAndPort("192.168.0.60",8002));
jedisClusterNode.add(new HostAndPort("192.168.0.60",8003));
jedisClusterNode.add(new HostAndPort("192.168.0.60",8004));
jedisClusterNode.add(new HostAndPort("192.168.0.60",8005));
jedisClusterNode.add(new HostAndPort("192.168.0.60",8006));
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxTotal(100);
config.setMaxIdle(10);
config.setTestOnBorrow(true);
JedisCluster jedisCluster = new JedisCluster(jedisClusterNode, 6000, 10, config);
System.out.println(jedisCluster.set("name","bob"));
System.out.println(jedisCluster.set("age","18"));
System.out.println(jedisCluster.get("na500万彩票网走势图手机版-轻松建立 Redis 缓存高可用集群me"));
System.out.println(jedisCluster.get("age"));
jedisCluster.close();
}
}