redis twemproxy集群安装手册
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的下载安装教程,内容中不包含与标题相同的文字。
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带密码访问解决当中各种坑!】⼀.搭建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集群部署三台物理机: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整合步骤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主从服务器搭建 (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(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集群安装手册鲁强一、概述要让集群正常工作至少需要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节点不是空的,你需要先用重新分片命令来把数据移到其他的节点。
redis集群搭建步骤
redis集群搭建步骤Redis集群搭建步骤如下:1.准备集群文件夹,创建集群文件夹,并在该文件夹中分别创建7000-7005文件夹。
2.配置文件,将redis根目录中的redis.conf文件复制到cluster/7000/ 文件夹中,并修改本地绑定IP地址、关闭保护模式、修改端口号、启动后台启动、关闭AOF模式、开启集群配置、开启集群配置文件。
同样,对7001-7005文件夹进行相同的配置。
3.批量分配、修改配置文件,对7000~7005这六个文件夹,分别进行配置文件的修改。
4.编写脚本编辑启动/关闭命令,创建启动脚本—vim start.sh,创建关闭脚本—vim shutdown.sh,启动redis节点并查看状态。
5.在启动Redis实例之前需要修改配置文件的配置信息,打开Redis.conf文件,打开cluster-enable。
除此之外还要修改节点配置文件的存放名称,在默认的情况下都是node-6379.conf。
修改该文件名称node-6380....,这些对应的文件可以自动创建。
6.在创建集群的过程中至少需要3个主数据库才能正常运行。
7.首先创建6个Redis实例,修改配置文件中cluster-enable选项以及port选项。
redis-server redis.conf启动数据库实例。
8.使用Redis客端链接任意一个节点,INFO CLUSTER判断集群是否正常启用,如果在返回信息之中cluster_enabled为1表示集群正常启用。
以上步骤仅供参考,具体操作可能因实际情况而有所不同。
如果遇到问题,建议咨询专业技术人员获取帮助。
网易视频云:支持redis节点高可用的twemproxy
网易视频云:支持redis节点高可用的twemproxy原生twemporxytwemproxy支持一个proxy实例同时代理多个分布式集群(server pools),每个集群使用不同的网络端口实现数据流的隔离,下图中port1应用于cluster1代理,port2应用于cluster2代理:今天要介绍的是twemproxy对redis节点高可用的支持,拿上图的其中一个分布式集群进行示例,逻辑结构如下:客户端client流入的请求,在proxy上进行路由分片,然后转发到后端的redis节点上存储或者读取。
事实上,大家已经注意到后端的redis节点只有一个点,在出现异常情况下,是很容易掉线的。
按twemproxy的设计,它可以自动识别失效节点并将其剔除,同时落在原来节点上的请求会分摊到其余的节点上。
这是分布式缓存系统的一种通用做法,但需要忍受这个失效节点上的数据丢失,这种情况是否可以接受?在业内,redis虽然被定位为缓存系统,但事实上,无论哪种业务场景(我们接触过的)都不愿意接受节点掉线带来的数据丢失,因为那样对他们系统的影响实在太大了,更有甚者在压力大的时候引起后端数据库被击穿的风险。
所以,我们打算改造twemproxy,前后总共有几个版本,下面分享给各位的是我们目前线上在跑的版本。
定制化改造在上图的基础上,我们增加了与manager交互的模块、增加了与sentinel(redis-sentinel)交互的模块,修改了redis连接管理模块,图中三个红色虚线框所示:manager交互模块增加连接manager的客户端交互模块,用于发送心跳消息,从心跳应答包里获取group 名称列表和sentinel列表(IP/PORT信息),即整个分布式集群的配置信息,其中心跳消息带有版本信息,发送间隔可配置。
sentinel交互模块增加与sentinel客户端交互模块(IP/PORT信息来自于manager),发送group名称给sentinel获取redis主节点的IP/PORT信息,一个group对应一个主节点。
redis在Windows中下载及安装、设置教程
redis在Windows中下载及安装、设置教程⼀、下载:根据系统下载的版本:以(64位为例)下载后⼀般解压到根⽬录下:如(E:\Redis-x64-3.2.100)⼆、安装:打开cmd命令窗⼝,使⽤命令进⾏安装和注册redis到window服务安装命令:redis-server.exe --service-install redis.windows.conf --loglevel verbose启动服务命令:redis-server.exe --service-start关闭服务命令:redis-server.exe --service-stop最后返回的successfully表⽰安装成功。
也可以通过任务管理器中查看后台中是否有redis-service来判断是否启动成功。
我们重新打开⼀个cmd ,作为⼀个客户端调⽤redis服务,如下图所⽰,调⽤命令是:redis-cli.exe -h 127.0.0.1 -p 6379,如下图显⽰地址和端⼝,说明调⽤成功然后我们使⽤set 和get 命令进⾏测试⼀下,set uname "abc",然后使⽤get uname可以获取到对应set的值,说明调⽤成功三、客户端使⽤redis:我们重新打开⼀个cmd ,作为⼀个客户端调⽤redis服务,如下图所⽰,调⽤命令是:redis-cli.exe -h 127.0.0.1 -p 6379,如下图显⽰地址和端⼝,说明调⽤成功然后我们使⽤set 和get 命令进⾏测试⼀下,set uname "abc",然后使⽤get uname可以获取到对应set的值,说明调⽤成功四、设置密码:还可以通过将字符串设置为空来清空密码:CONFIG SET requirepass ""错误:1、Creating Server TCP listening socket 127.0.0.1:6379: bind: No error解决办法:E:\Redis-x64-3.2.100>redis-cli.exe127.0.0.1:6379>shutdown(error) NOAUTH Authentication required.127.0.0.1:6379>auth root ## 登录OK127.0.0.1:6379>shutdownnot connected>exitE:\Redis-x64-3.2.100>redis-server.exe redis.windows.conf总结以上所述是⼩编给⼤家介绍的redis在Windows中下载及安装、设置教程,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。
twemproxy 参数
twemproxy 参数一、简介Twemproxy是一款高性能的Redis代理服务器,它提供了对Redis 数据库的高效管理和访问功能。
通过Twemproxy,您可以轻松地实现Redis集群的搭建和管理,提高应用程序的性能和响应速度。
本篇文章将介绍Twemproxy的主要参数及其含义和设置方法。
二、主要参数1.port:Twemproxy的默认端口号为2222。
您可以通过修改配置文件中的"port"参数来更改端口号。
2.maxconns:Twemproxy的最大连接数。
默认值为100,可以根据实际需求进行调整。
3.hash算法:Twemproxy使用多种哈希算法来分配数据到不同的Redis分片。
默认值为"crc16(key)",可以根据实际需求选择其他哈希算法。
4.slowquery:Twemproxy会将执行时间超过指定阈值的查询记录下来,以便进行性能分析和优化。
默认值为200ms,可以根据实际情况进行调整。
5.server_timeout:Twemproxy的服务器超时时间。
默认值为1秒,可以根据实际需求进行调整。
6.binary_protocol:启用二进制协议,可以提高Twemproxy的性能和安全性。
默认值为true。
7.cluster_store:指定Twemproxy使用的存储引擎,如leveldb 或rocksdb。
默认值为"leveldb"。
8.qps:限制Twemproxy的查询处理速率,以防止过载。
可以通过调整此参数来控制QPS值。
9.snappy_buffer_size:指定Snappy压缩缓冲区的大小,可以提高Twemproxy的性能和压缩效率。
三、配置方法要设置Twemproxy的参数,您需要编辑配置文件(通常是conf/twem.conf)。
在配置文件中,您可以根据需要添加或修改参数值。
以下是一个示例配置文件:```bashport2222maxconns200hash_algorithmcrc16(key)slowquery500server_timeout5binary_protocoltruecluster_storeleveldbqps100snappy_buffer_size64m```请注意,上述示例仅供参考,具体配置方法可能因您的环境和需求而异。
redis集群方案
Codis
• 一个支持平滑增加Redis实例的Redis代理软件。其基于Go和C语言开发。 • 分为以下四部分: • Codis Proxy:Redis客户端连接到Redis实例的代理,实现了Redis的协议,
Redis客户端连接到Codis Proxy进行各种操作。Codis Proxy是无状态的,可 以用Keepalived等负载均衡软件部署多个Codis Proxy实现高可用。 • CodisRedis:Codis项目维护的Redis分支,添加了slot和原子的数据迁移命令。 Codis上层的 Codis Proxy和Codisconfig只有与这个版本的Redis通信才能正常 运行。 • Codisconfig:Codis管理工具。可以执行添加删除CodisRedis节点、添加删除 Codis Proxy、数据迁移等操作。另外,Codisconfig自带了HTTP server,里面 集成了一个管理界面,方便运维人员观察Codis集群的状态和进行相关的操 作,极大提高了运维的方便性,弥补了Twemproxy的缺点。 • Zookeeper:分布式的、开源的应用程序协调服务,是Hadoop和Hbase的重 要组件,其为分布式应用提供一致性服务,提供的功能包括:配置维护、 名字服务、分布式同步、组服务等。Codis依赖于Zookeeper存储数据路由 表的信息和Codis Proxy节点的元信息。另外,Codisconfig发起的命令都会通 过Zookeeper同步到CodisProxy的节点。
回给客户端。
• Twemproxy通过引入一个代理层,将多个Redis实例 进行统一管理,使Redis客户端只需要在Twemproxy 上进行操作,而不需要关心后面有多少个Redis实例, 从而实现了Redis集群
redis集群搭建过程(非常详细,适合新手)
redis集群搭建过程(⾮常详细,适合新⼿)⽬录redis集群搭建⼀、Redis Cluster(Redis集群)简介⼆、集群搭建需要的环境三、集群搭建具体步骤如下(注意要关闭防⽕墙)四、结语redis集群搭建在开始redis集群搭建之前,我们先简单回顾⼀下redis单机版的搭建过程下载redis压缩包,然后解压压缩⽂件;进⼊到解压缩后的redis⽂件⽬录(此时可以看到Makefile⽂件),编译redis源⽂件;把编译好的redis源⽂件安装到/usr/local/redis⽬录下,如果/local⽬录下没有redis⽬录,会⾃动新建redis⽬录;进⼊/usr/local/redis/bin⽬录,直接./redis-server启动redis(此时为前端启动redis);将redis启动⽅式改为后端启动,具体做法:把解压缩的redis⽂件下的redis.conf⽂件复制到/usr/local/redis/bin⽬录下,然后修改该redis.conf⽂件->daemonize:no 改为daemonize:yse;在/bin⽬录下通过./redis-server redis.conf启动redis(此时为后台启动)。
综上redis单机版安装启动完成。
具体详细带图步骤请参考 ->请原谅我的啰嗦,ok,接着咱们回到本次话题----redis集群搭建!⼀、Redis Cluster(Redis集群)简介redis是⼀个开源的key value存储系统,受到了⼴⼤互联⽹公司的青睐。
redis3.0版本之前只⽀持单例模式,在3.0版本及以后才⽀持集群,我这⾥⽤的是redis3.0.0版本;redis集群采⽤P2P模式,是完全去中⼼化的,不存在中⼼节点或者代理节点;redis集群是没有统⼀的⼊⼝的,客户端(client)连接集群的时候连接集群中的任意节点(node)即可,集群内部的节点是相互通信的(PING-PONG机制),每个节点都是⼀个redis实例;为了实现集群的⾼可⽤,即判断节点是否健康(能否正常使⽤),redis-cluster有这么⼀个投票容错机制:如果集群中超过半数的节点投票认为某个节点挂了,那么这个节点就挂了(fail)。
Redis集群部署手册
Redis集群部署手册Redis集群部署手册一.部署环境OS:Red Hat Enterprise Linux Server release 6.7Redis Version: 3.0.0IP-01: 10.32.60.138 Port:6380,6381IP-02:10.32.60.139 Port:6382,6383IP-03:10.32.60.140 Port:6383,6384主节点01:10.32.60.138:6380主节点02:10.32.60.139:6382主节点03:10.32.60.140:6384从节点01:10.32.60.138:6381从节点02:10.32.60.138:6383从节点03:10.32.60.138:6385二.安装路径redis主目录:/opt/software/redis-serverredis 配置文件目录:/etc/redis日志存放目录:/opt/software/redis三.Redis 安装配置1.安装#tar –xzvf redis-3.0.0.tar.gz 解压#cd /opt/software/redis3.0.0#make && make PREFIX=/opt/software/redis-server install 编译安装#cp redis.conf /etc/redis/redis-6380.conf 配置文件#cp redis.conf /etc/redis/redis-6381.conf 配置文件2.配置以10.32.60.138 6380 节点为例redis 配置文件放在 /etc/redis 目录下,根据端口来配置节点设置后台运行:改为daemonize yes修改默认端口:port 6380其他节点根据端口号修改使用默认的日志级别:loglevel notice修改日志路径:改为logfile /opt/software/redis/redis-6380.log 其他节点根据端口号修改日志文件名称注释rdb保存条件(这样在运行过程中将不触发rdb模式):改为#save 900 1#save 300 10#save 60 10000修改保存目录路径:dir /opt/software/redis修改最大客户端连接数: maxclients 10000修改最大内存限制:maxmemory 16gb设置启动AOF持久模式:改为appendonly yes修改默认AOF文件名:appendfilename "appendonly-6380.aof"(按节点端口号来修改名称)使用默认fsync形式:appendfsync everysec(默认文件中已配置)设置启用集群模式:改为cluster-enabled yes修改集群配置文件名:cluster-config-file nodes-6380.conf(按需要改写)设置集群节点超时时间:改为cluster-node-timeout 5000(单位为毫秒)其他服务器的节点根据端口号不通来修改以上配置选项启动redis 节点10.32.60.138/opt/software/redis-server/redis-server /etc/redis/redis-6380.conf /opt/software/redis-server/redis-server /etc/redis/redis-6381.conf 10.32.60.139/opt/software/redis-server/redis-server /etc/redis/redis-6382.conf /opt/software/redis-server/redis-server /etc/redis/redis-6383.conf 10.32.60.140/opt/software/redis-server/redis-server /etc/redis/redis-6384.conf /opt/software/redis-server/redis-server /etc/redis/redis-6385.conf四.创建集群1.节点建立通信登录10.32.60.138执行以下命令#redis-cli –p 6380#cluster meet 10.32.60.138 6381#cluster meet 10.32.60.139 6382#cluster meet 10.32.60.139 6383#cluster meet 10.32.60.140 6384#cluster meet 10.32.60.140 6385#cluster nodes 查看已经建立的节点2.将16384个槽点分配给主节点#redis-cli -h 10.32.60.138 -p 6380 cluster addslots {0..5461}#redis-cli -h 10.32.60.139 -p 6382 cluster addslots {5462..10922}#redis-cli -h 10.32.60.140 -p 6384 cluster addslots {10923..16383}3.配置主节点的从节点分别在每个从节点登录#redis-cli –p 6381#cluster replicate 主节点ID(查看主节点id命令 cluster nodes)#redis-cli –p 6383#cluster replicate 主节点ID(查看主节点id命令 cluster nodes)#redis-cli –p 6385#cluster replicate 主节点ID(查看主节点id命令 cluster nodes)四.集群状态检查检查集群的状态,在任意节点登录#redis-cli –p 6380#cluster infocluster_state 状态为OK 则说明集群处于正常状态五.集群容灾说明三台服务器上共计部署6个节点,其中每台机器上各有一个主节点和从节点,一台机器宕机不影响节点的正常通信,如果两台机器同时宕机,则集群出于瘫痪状态,无法正常提供服务从节点Slave 故障节点。
Linux下Redis集群安装部署及使用详解(在线和离线两种安装+相关错误解决方案)
Linux下Redis集群安装部署及使⽤详解(在线和离线两种安装+相关错误解决⽅案)⼀、应⽤场景介绍 本⽂主要是介绍Redis集群在Linux环境下的安装讲解,其中主要包括在联⽹的Linux环境和脱机的Linux环境下是如何安装的。
因为⼤多数时候,公司的⽣产环境是在内⽹环境下,⽆外⽹,服务器处于脱机状态(最近公司要上线项⽬,就是⽆外⽹环境的Linux,被离线安装坑惨了,⾛了很多弯路,说多了都是⾎泪史啊%>_<%)。
这也是笔者写本⽂的初衷,希望其他⼈少⾛弯路,下⾯就介绍如何在Linux安装部署Redis集群。
⼆、安装环境及⼯具 系统:Red Hat Enterprise Linux Server release 6.6 ⼯具:XShell5及Xftp5 安装包:GCC-7.1.0 Ruby-2.4.1 Rubygems-2.6.12 Redis-3.2.9(3.x版本才开始⽀持集群功能)三、安装步骤 要搭建⼀个最简单的Redis集群,我们⾄少需要6个节点:3个Master和3个Slave。
那为什么需要3个Master呢?其实就是⼀个“铁三⾓”的关系,当1个Master下线的时候,其他2个Master 和对应的Salve⽴马就能顶替上去,确保集群能够正常使⽤,如果你之前了解Mongodb/Hadoop/Strom这些的话,你就很容易⽬标⼀般分布式的最低要求基数个数节点,这样便于选举(少数服从多数的原则)。
本⽂当中,我们就偷下懒,在⼀台Linux虚拟机上搭建6个节点的Redis集群(实际真正⽣产环境,需要3台Linux服务器分布存放3个Master)1、安装GCC环境安装Redis需要依托GCC环境,先检查Linux是否已经安装了GCC,如果没有安装,则需要进⾏安装检查GCC是否安装,可以看看版本号$ gcc -v如果已经安装了GCC,则会显⽰以下信息如果没有任何信息,则我们可以通过命令yum install gcc-c++进⾏在线安装$ yum install gcc-c++如果没有⽹络的时候,我们就需要下载GCC的安装包进⾏⼿动安装了,具体⽅法还是⽐较复杂的,具体离线安装GCC的⽅法,请参考我的另外⼀篇⽂章《》2、安装Ruby和Rubygems如果有⽹的话,则通过yum命令进⾏安装,⾃动将关联的依赖包全部安装$ yum install ruby$ yum install rubygems如果是离线的状态,我们则可以选择下载Ruby和Rubygems,解压⼿动进⾏安装,具体的⽅法请参考我的另外两篇⽂件《》和《》,这⾥我们不做多讲解。
redis单机安装以及集群搭建(redis-6.2.6)
redis单机安装以及集群搭建(redis-6.2.6)之前写过⼀篇基于redis-3.2.4版本的安装⽇记,这篇是基于redis-6.2.6改动不少,故再次记录⼀下两台电脑10.2.5.147,10.2.5.148,都是centos7.5本次搭建4主4从集群1.单机安装1.1.下载安装包直接从redis官⽹下载安装包,官⽹地址:https://redis.io/download直接使⽤命令下载:wget http://download.redis.io/releases/redis-6.2.6.tar.gz1.2.安装编译将安装包直接上传到了/opt⽬录解压 tar -zxvf redis-6.2.6.tar.gz 之后,得到⼀个redis-6.2.6的⽂件夹个⼈⽐较喜欢将⽂件信息放在/usr/local/redis⽬录下,所以cp /opt/redis-6.2.6/* /usr/local/redis接下来就是编译了进⼊到/usr/local/redis⽬录,执⾏make命令make编译报错make[3]: 进⼊⽬录“/usr/local/redis/deps/hiredis”cc -std=c99 -pedantic -c -O3 -fPIC -Wall -W -Wstrict-prototypes -Wwrite-strings -Wno-missing-field-initializers -g -ggdb alloc.cmake[3]: cc:命令未找到make[3]: *** [alloc.o] 错误 127make[3]: 离开⽬录“/usr/local/redis/deps/hiredis”make[2]: *** [hiredis] 错误 2make[2]: 离开⽬录“/usr/local/redis/deps”make[1]: [persist-settings] 错误 2 (忽略)CC adlist.o/bin/sh: cc: 未找到命令make[1]: *** [adlist.o] 错误 127make[1]: 离开⽬录“/usr/local/redis/src”安装更新gccyum isntall gcc-c++make编译报错致命错误:jemalloc/jemalloc.h:没有那个⽂件或⽬录分配器allocator,如果有MALLOC 这个环境变量,会有⽤这个环境变量的去建⽴Redis。
Redis高可用集群搭建教程
Redis高可用集群搭建教程Redis是广受欢迎的内存数据库,其高效性和可扩展性备受推崇。
然而,像所有分布式系统一样,Redis同样存在单点故障问题,这使得其可用性变得脆弱。
为了解决这个问题,我们可以使用Redis高可用集群来提高Redis系统的可用性。
本文将介绍如何搭建一个Redis高可用集群。
Redis高可用集群概述Redis高可用集群最初是由Antirez等Redis核心开发人员在Ruby on Rails平台上开发的。
Redis高可用集群是一个易于扩展的,高性能的,支持自动主从切换,自动容错的Redis集群,其提供了数据备份和恢复的方案。
高可用集群通过将Redis的数据分布在多个节点上来提高可用性。
每个节点都是一个独立的Redis实例,可以分别读取和写入数据。
当一个节点失效时,集群仍然可以继续工作。
Redis高可用集群实现原理Redis高可用集群采用的是分布式系统中常用的主从复制模式。
集群中每个节点都可以成为一个主节点和一个从节点,主节点负责写入和读取所有数据,而从节点只负责读取。
在Redis高可用集群中,主节点将数据分片分发到从节点上。
每个从节点都保存一个与主节点的复制副本。
这样,当主节点失效时,从节点可以自动接管其角色,成为新的主节点。
Redis高可用集群搭建步骤步骤1:安装Redis首先,我们需要安装Redis并在系统中启动Redis服务。
我们可以从官方网站上下载Redis二进制发行版。
一旦下载安装包,我们就可以解压缩该文件并在系统上安装Redis。
启动Redis服务后,我们可以通过以下命令查询Redis是否在运行:$ redis-cli ping步骤2:配置Redis节点在Redis集群中,节点使用配置文件来定义自己的数据备份和复制关系。
Redis配置文件通常位于/etc/redis/下。
我们需要在所有节点上创建一个配置文件,并对其进行配置。
在配置文件中,我们需要指定以下参数:- bind:我们可以使用bind参数指定Redis节点监听的IP地址或主机名- port:指定Redis节点监听的端口号- cluster-enabled yes:启用Redis集群功能- cluster-config-file nodes-6379.conf:指定节点配置文件的名称。
基于Twemproxy的Redis集群解决方案的设计与实现
基于Twemproxy的Redis集群解决方案的设计与实现王心妍;毛莉君【摘要】When thetraditional database facing massive data access,disk I/O often become a performance bottleneck,resulting in high response delay.In this paper,Rdeis cache technology based on building a distributed cache system, provide high availability for application system,distributed caching system with high performance and high reliability.%当传统数据库面临大规模数据访问时,磁盘I/O往往成为性能瓶颈,从而导致过高的响应延迟.本文基于Rdeis缓存技术,构建一个分布式缓存系统,为应用系统提供高可用性,高性能、高可靠性的分布式缓存系统.【期刊名称】《电子测试》【年(卷),期】2016(000)006【总页数】2页(P16-17)【关键词】Redis集群;Twemproxy;RedisCluster【作者】王心妍;毛莉君【作者单位】西安培华学院,陕西西安,710125;西安培华学院,陕西西安,710125【正文语种】中文本文系陕西省教育厅2015年专项科研计划项目“基于Android平台的电商微信服务系统的开发”(项目编号:15JK2094)的研究成果。
随着移动4G的飞速发展,越来越多的人参与网络应用,在服务器面临海量请求压力的同时,用户对请求响应时间则提出了更高的要求,传统磁盘持久化数据库根本无法应对这样的需求,内存数据库则应运而生。
Redis是内存数据库中的佼佼者,是基于内存的开源的高性能Key/Value数据库,不仅支持多种数据结构和主从复制,还支持数据的持久化,即使服务器异常重启也不会导致内存数据的全部丢失。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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
安装步骤从源码安装方式步骤⑩开始执行。