redis twemproxy集群安装手册

合集下载

redis3.0.2 分布式集群安装详细步骤

redis3.0.2 分布式集群安装详细步骤

redis3.0.2 分布式集群安装详细步骤--(centos5.8 X64系统)版本历史一: redis cluster介绍篇1:redis cluster的现状目前redis支持的cluster特性(已亲测):1):节点自动发现2):slave->master 选举,集群容错3):Hot resharding:在线分片4):进群管理:cluster xxx5):基于配置(nodes-port.conf)的集群管理6):ASK 转向/MOVED 转向机制.2:redis cluster 架构1)redis-cluster架构图架构细节:(1)所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.(2)节点的fail是通过集群中超过半数的节点检测失效时才生效.(3)客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可(4)redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value2) redis-cluster选举:容错(1)领着选举过程是集群中所有master参与,如果半数以上master节点与master 节点通信超过(cluster-node-timeout),认为当前master节点挂掉.(2):什么时候整个集群不可用(cluster_state:fail),当集群不可用时,所有对集群的操作做都不可用,收到((error) CLUSTERDOWN The cluster is down)错误a:如果集群任意master挂掉,且当前master没有slave.集群进入fail状态,也可以理解成进群的slot映射[0-16383]不完成时进入fail状态.b:如果进群超过半数以上master挂掉,无论是否有slave集群进入fail状态.二.Redis集群安装篇(centos5.8 X64系统)(要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下)127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:70051:下载redis。

redis下载安装教程

redis下载安装教程

redis下载安装教程以下是Redis的下载安装教程,内容中不包含与标题相同的文字。

1. 在Redis的官方网站上(https://redis.io/)找到"Download"页面。

2. 在"Download"页面上,找到最新版本的Redis,并点击下载链接。

选择适合你操作系统的版本。

3. 下载完成后,将Redis文件解压到你想要安装的目录。

例如,可以将其解压到"C:\Redis"目录下。

4. 打开解压后的Redis目录,并找到"redis.conf"文件。

这是Redis的配置文件,可以根据需要进行修改。

5. 打开命令行界面(Command Prompt)并进入Redis的安装目录。

6. 在命令行中输入"redis-server.exe redis.conf",然后按下回车键,启动Redis服务器。

7. 如果一切顺利,你应该会看到一些Redis服务器的信息,表示Redis已成功运行。

8. 另外打开一个命令行界面(不要关闭之前的命令行界面),进入Redis的安装目录。

9. 在命令行中输入"redis-cli.exe",然后按下回车键,启动Redis命令行客户端。

10. 如果一切顺利,你应该会看到Redis命令行提示符,表示你已成功连接到Redis服务器。

11. 现在你可以在Redis命令行中输入各种Redis命令,来操作Redis数据库了。

例如,可以使用"SET key value"命令设置键值对,使用"GET key"命令获取键的值等等。

12. 当你完成Redis的使用后,可以使用"SHUTDOWN"命令关闭Redis服务器。

以上是Redis的下载安装教程。

根据这些步骤,你应该能够成功下载并安装Redis,并开始使用它。

【搭建rediscluster集群,JedisCluster带密码访问解决当中各种坑!】

【搭建rediscluster集群,JedisCluster带密码访问解决当中各种坑!】

【搭建rediscluster集群,JedisCluster带密码访问解决当中各种坑!】⼀.搭建redis单机本⽂搭建redis3.0版本,3.0主要增加了redis cluster集群功能。

2.解压源码:tar -zxvf redis-3.0.0.tar.gz3.编译源码:cd /usr/local/redis-3.0.0make4.安装到指定⽬录: cd /usr/local/redis-3.0.0make PREFIX=/usr/local/redis install5.进⼊源码⽬录,将redis.conf拷贝到安装路径:cd /usr/local/redismkdir confcp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin6.修改redis.conf配置⽂件,以后端模式启动:daemonize yes7.启动redis:cd /usr/local/redis ./bin/redis-server ./redis.conf //在何处启动的server,⼀些配置⽂件就默认在该处⽣成(如果配置的相对路径)8.redis.conf配置⽂件主要配置:port 7001 //监听的端⼝# bind 127.0.0.1 //绑定ip,只允许该ip访问,不填默认为*,表⽰允许所有ip访问requirepass "你的密码" //开启密码loglevel debug //⽇志级别,开发模式尽量选⽤debuglogfile "redis.log" //⽇志⽂件路径,此处使⽤相对路径,将⽣成到/usr/local/redis下maxmemory 100000000 //允许最⼤内存占⽤100mappendonly yes //启⽤aofauto-aof-rewrite-percentage 80 //部署在同⼀机器的多个redis实例,建议把auto-aof-rewrite错开(可分别写80-100不等),防⽌瞬间fork,所有redis进程做rewrite,占⽤⼤量内存9.jedis连接redis单机:1<dependency>2<groupId>redis.clients</groupId>3<artifactId>jedis</artifactId>4<version>2.7.0</version>5</dependency>连接池整合spring:<!-- redis连接池(单例) --><bean id="jedisPool" class="redis.clients.jedis.JedisPool" destroy-method="close"><constructor-arg name="poolConfig" ref="jedisPoolConfig"/><constructor-arg name="host" value="${redis.host}"/><constructor-arg name="port" value="${redis.port}"/><constructor-arg name="timeout" value="${redis.timeout}"/><constructor-arg name="password" value="${redis.pass}"/></bean><!-- 连接池配置 --><bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig"><!-- 最⼤连接数 --><property name="maxTotal" value="150"/><!-- 最⼤空闲连接数 --><property name="maxIdle" value="30"/><!-- 最⼩空闲连接数 --><property name="minIdle" value="10"/><!-- 获取连接时的最⼤等待毫秒数,⼩于零:阻塞不确定的时间,默认-1 --><property name="maxWaitMillis" value="3000"/><!-- 每次释放连接的最⼤数⽬ --><property name="numTestsPerEvictionRun" value="100"/><!-- 释放连接的扫描间隔(毫秒) --><property name="timeBetweenEvictionRunsMillis" value="3000"/><!-- 连接最⼩空闲时间 --><property name="minEvictableIdleTimeMillis" value="1800000"/><!-- 连接空闲多久后释放, 当空闲时间>该值且空闲连接>最⼤空闲连接数时直接释放 --><property name="softMinEvictableIdleTimeMillis" value="10000"/><!-- 在获取连接的时候检查有效性, 默认false --><property name="testOnBorrow" value="true"/><!-- 在空闲时检查有效性, 默认false --><property name="testWhileIdle" value="true"/><!-- 在归还给pool时,是否提前进⾏validate操作 --><property name="testOnReturn" value="true"/><!-- 连接耗尽时是否阻塞, false报异常,ture阻塞直到超时, 默认true --><property name="blockWhenExhausted" value="false"/></bean>1 @RunWith(SpringJUnit4ClassRunner.class) // 指定测试⽤例的运⾏器这⾥是指定了Junit42 @ContextConfiguration("classpath:spring/application*.xml")3public class RedisTest {4 @Autowired5private JedisPool pool;6 @Test7public void testJedisPool() {8 Jedis jedis = null;9 String name = null;10try {11 jedis = pool.getResource();12 jedis.set("testName", "RCL");13 name = jedis.get("testName");14 } catch (Exception ex) {15 ex.printStackTrace();16 } finally {17if (jedis != null) {18// 返回给池19 jedis.close();20 }21 Assert.assertEquals("RCL", name);22 }23 }10.如果连接不上,可查看是否防⽕墙没有将redis端⼝开放:/etc/sysconfig/iptables添加:-A INPUT -p tcp -m state --state NEW -m tcp --dport 7001 -j ACCEPT //7001即redis端⼝重启防⽕墙⼆、搭建redis集群1.安装ruby环境集群管理⼯具redis-trib.rb依赖ruby环境(1)安装ruby:yum install ruby yum install rubygems(2)安装ruby和redis的接⼝程序:拷贝redis-3.0.0.gem⾄/usr/local。

Redis集群Redis-cluster搭建及故障、性能测试

Redis集群Redis-cluster搭建及故障、性能测试

Redis集群Redis-cluster搭建及故障、性能测试⼀、Redis集群部署三台物理机:172.20.0.17、172.20.0.18、172.20.0.19⼆、安装Redis下载安装redis压缩包解压压缩包,进⼊redis-5.0.2⽂件夹,运⾏命令./make install安装redismv redis-5.0.2 /usr/local/redis/三、修改配置⽂件node1--17服务器:1、创建redis_cluster/700X的⽬录mkdir -p /usr/local/redis/redis_cluster/7001mkdir -p /usr/local/redis/redis_cluster/70022、修改Redis.conf的端⼝cp redis.conf /usr/local/redis/redis_cluster/7001修改端⼝为7001cp redis.conf /usr/local/redis/redis_cluster/7002修改端⼝为70023、同时将修改后的Redis.conf复制到另外两个节点(18、19)4、将redis-server复制到节点⽬录下,⽅便操作cp /usr/local/bin/redis-server /usr/local/redis/redis-5.0.2/redis_cluster/7001/5、开启redis-cluster配置,配置做以下改造#配置yes开启redis-clustercluster-enabled yes#配置节点之间超时时间cluster-node-timeout 15000#这个配置很重要,cluster开启必须重命名指定cluster-config-file,不能与别的节点相同,否则会启动失败,最好按主机+端⼝命名cluster-config-file nodes-17-7001.conf四、启动各节点17、18、19Rediscd /usr/local/redis/redis-5.0.2/redis_cluster/7001./redis-server redis.confcd /usr/local/redis/redis-5.0.2/redis_cluster/7002./redis-server redis.conf五、创建集群命令cd /usr/local/bin./redis-cli --cluster create 172.20.0.17:7001 172.20.0.18:7001 172.20.0.19:7001 172.20.0.17:7002 172.20.0.18:7002 172.20.0.19:7002 --cluster-replicas 1(replicas1 表⽰我们希望为集群中的每个主节点创建⼀个从节点。

twemproxy与sentinel整合步骤

twemproxy与sentinel整合步骤

twemproxy与sentinel整合步骤1.tw-redis-server-a将哨兵的配置⽂件拷贝到tw-proxy-server-a主机上;scp /usr/data/redis/back/sentinel.conf 192.168.68.170:/usr/local/redis/conf;2.tw-proxy-server-a通过源代码⽂件拷贝出哨兵进程的启动项:cp /usr/local/src/redis-3.2.9/src/redis-sentinel /usr/local/redis/bin/3.tw-proxy-server-a启动哨兵机制,这个哨兵机制是为了让Shell脚本可以整合到所有的哨兵机制⾥;/usr/local/software/redis/bin/redis-sentinel /usr/local/software/redis/conf/sentinel.conf4.tw-proxy-server-a为了⽅便进⾏shell脚本的保存在twemproxy程序⽬录中创建有⼀个sh的⽬录:mkdir -p /usr/local/software/twemproxy/sh5.tw-proxy-server-a建⽴⼀个可以进⾏哨兵重启twemproxy进程的shell脚本:编辑命令:vim /usr/local/software/twemproxy/sh/client-reconfig.sh6.tw-proxy-server-a为脚本授予全部执⾏权限:chmod 777 /usr/local/software/twemproxy/sh/client-reconfig.sh7.tw-proxy-server-a现在要连接本机的哨兵进程,这样才可以与此脚本⽂件有关联:/usr/local/software/redis/bin/redis-cli -h 192.168.125.162 -p 26379 sentinel set redis_master_group1 client-reconfig-script/usr/local/software/twemproxy/sh/client-reconfig.sh/usr/local/software/redis/bin/redis-cli -h 192.168.125.162 -p 26379 sentinel set redis_master_group2 client-reconfig-script/usr/local/software/twemproxy/sh/client-reconfig.sh/usr/local/software/redis/bin/redis-cli -h 192.168.125.162 -p 26379 sentinel set redis_master_group3 client-reconfig-script/usr/local/software/twemproxy/sh/client-reconfig.sh那么此时哨兵机制⼀旦发⽣了重新的选举之后,那么会⽴刻重新启动twemproxy的相关进程。

redis集群搭建及配置

redis集群搭建及配置

redis主从服务器搭建修改记录目录redis主从服务器搭建 (1)一.redis主从服务器搭建 (2)第一步:下载redis (2)第二步:解压redis tar包 (2)第三步:进入reidis目录 (2)第四步:make (2)第五步:make install (3)第六步:修改redis.conf 操作 (3)第七步:redis从服务器配置 (4)第八步:修改从服务redis.conf (4)二.redis测试 (4)第一步:编写redis客户端启动shell (4)第二步:启动客户端 (5)第三步:操作 (5)第四步:set name test (5)第五步:get name (5)第六步:从服务器端启动客户端 (5)第七步:从服务器端(10.105.76.100) get name (5)三.sentinel配置及启动 (5)第一步:修改sentinel.conf (6)第二步启动sentinel (6)第三步:启动sentinel (6)一.redis主从服务器搭建第一步:下载redis在redis官网下载redis2.8.17版本第二步:解压redis tar包将下载的redis-2.8.17.tar.gz放在10.105.76.99(主服务器)上/usr/local下然后解压tar包命令:tar -zxvf redis-2.8.17.tar.gz第三步:进入reidis目录进入redis-2.8.17目录命令: cd redis-2.8.17第四步:makemake 或者make MALLOC=libc 如果使用make时报错(zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory)此时可使用make MALLOC=libc出现下图说明make完成第五步:make install第六步:修改redis.conf 操作进入redis安装目录cd /usr/local/redis-2.8.17,vi redis.conf将daemonize no改为yes ,意思是在后台运行logfile改为log的存放路径requirepass 前面的#去掉后面改为itmiredis此处为密码前六步已经完成了redis主端的安装及配置,如果需要可以写一个启动redis的shell脚本,touch start.sh,vi start.sh 里面的内容为src/redis-server redis.conf第七步:redis从服务器配置将安装好的redis拷贝到从服务器(10.105.76.100) 命令scp -r /usr/local/redis-2.8.17root@10.105.76.100:/usr/local第八步:修改从服务redis.conf拷贝完成后进入从服务器(10.105.76.100) ,cd /usr/local/redis-2.8.17,修改redis.confslaveof ip(10.105.76.99) 端口(6379) 此处为主服务的ip和端口因为主服务上设置了密码所以需要修改masterauth ,并将requirepass注释掉此时redis主从应配置完成通过start.sh分别启动redis(10.105.76.99)和(10.10.576.100) 通过ps -ef|grep redis查看进程,出现如下图说明redis启动完成二.redis测试第一步:编写redis客户端启动shell可以写一个shell脚本启动redis客户端cd /usr/local/redis-2.8.17/,touch startcli.sh,vi startcli.sh startcli.sh内容为src/redis-cli,并将此文件拷贝到从服务器10.105.76.100第二步:启动客户端在主服务器端(10.105.76.99) 命令:sh startcli.sh第三步:操作输入密码auth itmiredis第四步:set name test第五步:get name第六步:从服务器端启动客户端从服务器端启动客户端(10.105.76.100),sh startcli.sh第七步:从服务器端(10.105.76.100) get name此时说明主从服务已经搭建完成。

Redis集群使用指南

Redis集群使用指南

Redis集群使用指南一、Redis集群简介Redis(Remote Dictionary Server)是一个开源的基于内存的键值对存储系统,经常用来作为缓存、消息队列和数据库。

在实际使用过程中,Redis可能会出现性能瓶颈和单点故障。

为了解决这些问题,Redis提供了集群模式。

Redis集群是对多个Redis节点进行逻辑分区和复制,从而实现高可用、高性能和可伸缩性。

Redis集群能够自动进行故障转移和重新分配,可以提供更好的可靠性和吞吐量。

二、Redis集群的工作原理Redis集群采用哈希槽(Hash Slot)的方式来实现数据的分片和复制。

一个Redis集群可以包含多个Redis节点,每个节点管理一部分哈希槽。

当客户端需要对某个键进行操作时,Redis首先计算该键对应的哈希值,然后将其分配到某个哈希槽中。

Redis集群根据哈希槽的分配情况,将该键的操作转发给相应的Redis节点进行处理。

如果某个节点出现故障,Redis集群会自动将该节点管理的哈希槽重新分配给其他节点。

Redis集群采用主从复制的方式来实现数据的持久化和高可用。

每个主节点可以有多个从节点,主节点负责处理读写请求,同时将数据复制到从节点。

如果主节点出现故障,其中的一个从节点会被自动选举为新的主节点,继续处理客户端请求。

三、搭建Redis集群的步骤1、安装Redis节点在Linux系统上安装Redis比较简单,可以使用以下命令:sudo apt-get updatesudo apt-get install redis-server安装完毕后,可以通过以下命令启动Redis服务:sudo service redis-server start2、配置Redis节点每个Redis节点都需要进行一些配置,以便加入到Redis集群中。

可以通过以下命令进入Redis配置文件:sudo vim /etc/redis/redis.conf需要修改的配置项有以下几个:cluster-enabled yes:启用Redis集群模式。

redis3.0集群安装手册

redis3.0集群安装手册

Redis3.0集群安装手册鲁强一、概述要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下127.0.0.1:7000127.0.0.1:7001127.0.0.1:7002127.0.0.1:7003127.0.0.1:7004127.0.0.1:7005二、准备环境安装ruby集群环境需要ruby,所以需要安装下yum install rubyyum install ruby-rdocruby setup.rb安装完毕后启动依然报错需要安装redis库gem install redis问题解决下载最新redis版本3.06 并进行构建创建用户useradd redispasswd redis切换用户su – redis上传redis包到home目录tar -zxvf redis-3.0.6.tar.gzmv redis-3.0.6 redis3.0cd redis3.0make本环境为伪集群环境,所以在一台机器,多机情况相同mkdir /home/redis/ cluster-testcd /home/redis/ cluster-testmkdir 7000mkdir 7001mkdir 7002mkdir 7003mkdir 7004mkdir 7005三、修改配置将配置文件CP到各个集群节点目录下并修改端口号将redis-server cp到各个集群几点目录下详见配置文件范例conf.zi p四、启动环境运行startAll.sh文件即可启动集群Client 连接集群任意一个节点即可五、添加新主节点使用命令./redis-trib.rb add-node 10.4.89.16:7006 10.4.89.16:7000第一个为新节点IP端口第二个参数为任意节点IP添加后日志信息>>> Adding node 10.4.89.16:7006 to cluster 10.4.89.16:7000>>> Performing Cluster Check (using node 10.4.89.16:7000)M: 7e81d801c3ce503868c67dd6b47b82b8e04458ce 10.4.89.16:7000slots:0-5460 (5461 slots) master1 additional replica(s)M: c744b599c7cf31c05ed5a95f831461de8d5dfb95 10.4.89.16:7002slots:10923-16383 (5461 slots) master1 additional replica(s)M: d5297c5cee8a142123775224f39cce499fd7c435 10.4.89.16:7001slots:5461-10922 (5462 slots) master1 additional replica(s)S: d2c5ca33820cda4f8f1e98fbfcd72cf91bc7b676 10.4.89.16:7004slots: (0 slots) slavereplicates d5297c5cee8a142123775224f39cce499fd7c435S: b501af87c221ba53f7edd76bf1b5a77352d963be 10.4.89.16:7003slots: (0 slots) slavereplicates 7e81d801c3ce503868c67dd6b47b82b8e04458ceS: 77472bc34b72345b939b585157f4fc70fea81327 10.4.89.16:7005slots: (0 slots) slavereplicates c744b599c7cf31c05ed5a95f831461de8d5dfb95[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.>>> Send CLUSTER MEET to node 10.4.89.16:7006 to make it join the cluster.脚本先检查了集群状态,后添加了节点,添加后节点是空节点./redis-cli -c -p 7000 cluster nodes查看后发现2e9bdb7ea488a3d5ee5b92f32d65a176bf7b41bd 10.4.89.16:7006 master - 0 1453774165361 0 connected是一个master节点,但是没有分配任何哈希槽,所以此节点不参加任何集群选取策略下面我们为新节点分布数据槽./redis-trib.rb reshard 10.4.89.16:7006会询问向移动多少哈希槽到此节点>>> Performing Cluster Check (using node 10.4.89.16:7006)M: 2e9bdb7ea488a3d5ee5b92f32d65a176bf7b41bd 10.4.89.16:7006slots: (0 slots) master0 additional replica(s)S: b501af87c221ba53f7edd76bf1b5a77352d963be 10.4.89.16:7003slots: (0 slots) slavereplicates 7e81d801c3ce503868c67dd6b47b82b8e04458ceS: 77472bc34b72345b939b585157f4fc70fea81327 10.4.89.16:7005slots: (0 slots) slavereplicates c744b599c7cf31c05ed5a95f831461de8d5dfb95M: 7e81d801c3ce503868c67dd6b47b82b8e04458ce 10.4.89.16:7000slots:0-5460 (5461 slots) master1 additional replica(s)S: d2c5ca33820cda4f8f1e98fbfcd72cf91bc7b676 10.4.89.16:7004slots: (0 slots) slavereplicates d5297c5cee8a142123775224f39cce499fd7c435M: d5297c5cee8a142123775224f39cce499fd7c435 10.4.89.16:7001slots:5461-10922 (5462 slots) master1 additional replica(s)M: c744b599c7cf31c05ed5a95f831461de8d5dfb95 10.4.89.16:7002slots:10923-16383 (5461 slots) master1 additional replica(s)[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.How many slots do you want to move (from 1 to 16384)?此次我们移动3000What is the receiving node ID?接收这些哈希槽的IDSource node #1:想从哪个节点移动哈希槽,输入节点ID即可,如果输入all则各个节点分散获取./redis-cli -c -p 7000 cluster nodes查看现在状态发现已经有哈希槽了2e9bdb7ea488a3d5ee5b92f32d65a176bf7b41bd 10.4.89.16:7006 master - 0 1453774829906 7 connected 0-998 5461-6461 10923-11921六、添加从节点添加从节点和添加主节点的策略是一样的先启动需要添加的节点,然后开始添加新节点./redis-trib.rb add-node --slave 10.4.89.16:7007 10.4.89.16:7000第一个参数为新节点IP 第二个为任意节点[redis@api cluster-test]$ ./redis-trib.rb add-node --slave 10.4.89.16:7007 10.4.89.16:7000 >>> Adding node 10.4.89.16:7007 to cluster 10.4.89.16:7000>>> Performing Cluster Check (using node 10.4.89.16:7000)M: 7e81d801c3ce503868c67dd6b47b82b8e04458ce 10.4.89.16:7000slots:999-5460 (4462 slots) master1 additional replica(s)M: c744b599c7cf31c05ed5a95f831461de8d5dfb95 10.4.89.16:7002slots:11922-16383 (4462 slots) master1 additional replica(s)M: d5297c5cee8a142123775224f39cce499fd7c435 10.4.89.16:7001slots:6462-10922 (4461 slots) master1 additional replica(s)S: d2c5ca33820cda4f8f1e98fbfcd72cf91bc7b676 10.4.89.16:7004slots: (0 slots) slavereplicates d5297c5cee8a142123775224f39cce499fd7c435S: b501af87c221ba53f7edd76bf1b5a77352d963be 10.4.89.16:7003slots: (0 slots) slavereplicates 7e81d801c3ce503868c67dd6b47b82b8e04458ceS: 77472bc34b72345b939b585157f4fc70fea81327 10.4.89.16:7005slots: (0 slots) slavereplicates c744b599c7cf31c05ed5a95f831461de8d5dfb95M: 2e9bdb7ea488a3d5ee5b92f32d65a176bf7b41bd 10.4.89.16:7006slots:0-998,5461-6461,10923-11921 (2999 slots) master0 additional replica(s)[OK] All nodes agree about slots configuration.>>> Check for open slots...>>> Check slots coverage...[OK] All 16384 slots covered.Automatically selected master 10.4.89.16:7006>>> Send CLUSTER MEET to node 10.4.89.16:7007 to make it join the cluster.Waiting for the cluster to join.>>> Configure node as replica of 10.4.89.16:7006.[OK] New node added correctly.其实此节点加给了7006看下集群信息./redis-cli -c -p 7000 cluster nodes发现确实加给了7007看下info信息./redis-cli -c -p 7000 cluster info一切正常七、移除节点通过redis-trib 提供的del-node 命令可以移除一个slave节点:./redis-trib del-node 127.0.0.1:7000 `<node-id>`在移除master节点之前必须确保它是空的否则你的集群有可能会不可用如果你要移除的master节点不是空的,你需要先用重新分片命令来把数据移到其他的节点。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、概述
1、Redis集群安装有两种方式,第一种为编译源码安装,第二种为二进制安
装,具体选择哪一种方式根据实际情况决定。

2、本文档所使用版本如下:
redis:redis-3.0.0-rc5
Twemproxy:nutcracker-0.4.0
autoconfig:2.69
3、常用Linux命令不清楚可以查看相关网站
4、本文档所述redis集群架构如下:
5、本文档使用120和121搭建redis集群,每台机器各启动两个redis实例
和一个twemproxy实例。

Redis端口分别为6379 6380
6、采用源码编译方式安装需服务器具有访问外网权限,二进制安装不需求。

7、所有安装包均已上传至文件服务器
二、源码编译方式安装
1、安装automake
执行:yum install automake,出现如下输入Y完成安装:
2、libtool安装
执行:yum install libtool
出现如下输入yes完成安装
3、autoconfig安装
①上传autoconf-2.69.tar.gz至/usr/local/src目录下
②执行tar -xzvf autoconf-2.69.tar.gz
③cd autoconf-2.69
④执行./configure
⑤执行make
⑥执行make install
至此,autoconfig安装完毕
4、redis安装
①上传redis-3.0.0-rc5.zip至/usr/local/src目录下
②执行unzip redis-3.0.0-rc5.zip
③执行cd redis-3.0.0-rc5
④执行make&&make install
⑤执行mkdir /usr/local/redis
⑥执行cp src/redis-server src/redis-cli /usr/local/redis
⑦执行cd /usr/local/redis
⑧执行chmod 777 redis-server redis-cli
⑨执行./redis-server --port 6379 --save "" &
出现如下
⑩执行./redis-cli -p 6379出现如下
11、执行set test 11111,在执行get test
5、Twemproxy安装
①、上传twemproxy.tar.gz至/usr/local/src
②、执行tar -vf twemproxy.tar.gz
③、执行cd twemproxy
④、执行 autoreconf -fvi
⑤、执行 ./configure
⑥、执行make -j 8 && make install
⑦、执行cp src/nutcracker /usr/local/redis
⑧、执行cp conf/nutcracker.yml /usr/local/redis
⑨、执行cd /usr/local/redis
⑩、执行chmod 777 nutcracker
至此twemproxy安装完成
Twemproxy配置
①、执行vim /usr/local/redis/nutcracker.yml
②、如下位置添加:
servers:
- 172.168.70.3:6379:1
- 172.168.70.3:6380:1
- 172.168.70.4:6379:1
- 172.168.70.4:6380:1
注意:listen这里一定不能写为localhost或者127.0.0.1,一定要写为本机IP Server列表需要按照自己配置填写
至此,twemproxy配置完毕
Twemproxy启动
#cd /usr/local/redis
#./nutcracker -c nutcracker.yml -o twemproxy.log -d -v 0
#cd /usr/local/redis/
#./redis-cli -h 172.168.70.3 -p 22121
其中-c为设置配置文件,-o为log文件地址–v为日志等级–h为主机地址在redis客户端(和)访问出现如下表示安装成功
6、值得注意的那些坑:
①、Twemproxy安装需要autoconfig,autoconfig安装需要automake和libtool,
所以一定要先安装aotumake和libtool,否则会报各种乱七八糟文件找不到的错误
②、Twemproxy是用autoconfig生成配置文件,所以直接执行./config会报
错:没有配置文件
③、Twemproxy makefile没有做特殊的文件处理,所以生成的可执行文件和
源码文件以及中间.o文件都混合在src目录下,执行时候要注意查看
④、Twemproxy script目录下文件经测试基本都会报错,群里问了几个人也
都一样,但是有写文档写的可以测试,目前不要去管
⑤、启动Twemproxy之前先配置,先启动redis,最后启动Twemproxy,否
则会出现配置文件错误问题
⑥、Twemproxy配置文件的listen后边一定要写成实体IP,不要写成localhost
或者127.0.0.1.否则会出现本机shell可访问,但代码不可访问等问题
⑦、Twemproxy配置众多,各种哈希算法,详细配置见《基于Twemproxy
的群集部署方案》以后使用过程中不断改进
⑧、碰见坑第一反应不是百度而是翻墙,国内用Twemproxy做集群人很少,
文档基本都是安装实例,而且Twemproxy版本不同变化挺多,所以切记google。

⑨、经极光推送测试,Twemproxy有些redis命令不支持,目前知道restore
decr decrby这三个,所以以后代码出问题,可以想想是不是这里出问题
⑩、Twemproxy源码可以到https:///twitter/twemproxy下载,注意前边没code,有code的url可能上不去,另外twitter官网也上不去
三、二进制方式安装
①、上传nutcracker nutcracker.yum redis-cli redis-server至/usr/local/redis目录

②redis安装步骤从源码安装方式之“redis安装”步骤⑧开始执行,twemproxy
安装步骤从源码安装方式步骤⑩开始执行。

相关文档
最新文档