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

合集下载

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,并开始使用它。

redis操作手册

redis操作手册

Redis操作手册1. 介绍Redis是一个开源的内存数据结构存储系统,它可以用作数据库、缓存和消息中间件。

它以高性能和简单的设计而闻名,是许多互联网应用的首选解决方案。

本文将详细介绍Redis的操作手册,包括基本命令、数据类型、持久化、集群等方面的内容。

2. 安装和配置2.1 安装Redis要安装Redis,可以通过编译源代码或使用包管理器安装。

下面是在Ubuntu上使用包管理器安装Redis的示例:$ sudo apt-get update$ sudo apt-get install redis-server2.2 配置RedisRedis的配置文件位于redis.conf,可以通过编辑该文件来配置Redis的各种参数。

常见的配置项包括端口号、密码、持久化选项等。

在配置文件中,以#开头的行代表注释,可以用于说明配置项的作用。

配置完成后,需要重启Redis才能使配置生效。

3. 基本命令Redis提供了各种基本的命令,用于管理和操作数据。

以下是一些常用的Redis命令:3.1 字符串操作•SET key value:设置指定键的值。

•GET key:获取指定键的值。

•DEL key:删除指定键及其对应的值。

3.2 列表操作•LPUSH key value:将值插入到列表的头部。

•RPUSH key value:将值插入到列表的尾部。

•LPOP key:移除并返回列表的头部元素。

•RPOP key:移除并返回列表的尾部元素。

3.3 哈希操作•HSET key field value:设置指定键的哈希字段的值。

•HGET key field:获取指定键的哈希字段的值。

•HDEL key field:删除指定键的哈希字段及其值。

3.4 集合操作•SADD key member:将指定成员添加到集合中。

•SMEMBERS key:返回指定集合的所有成员。

•SREM key member:从指定集合中移除指定成员。

redis 集群安装(redis-trib.rb)

redis 集群安装(redis-trib.rb)

redisredis-trib.rb安装集群一、redis安装1.下载地址:$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz 2.解压缩$ tar xzf redis-3.2.8.tar.gz3.编译$ln -s redis-3.2.8 redis建立软链接,有利于未来升级,是一个比较好的做法$ cd redis$ make编译,有的时候会报错a、确保安装gccb、fatal error: jemalloc/jemalloc.h: No such file or directory 解决办法:make MALLOC=libc$make install安装放入到/usr/local/bin$redis-cli -v查看redis版本redis集群一般由多个节点组成,节点数量至少6个才能保证组成完整高可用的集群。

操作系统centos7.2-mini版一、redis安装略二、使用redis-trib.rb 安装工具1、安装rubyyum install ruby -y2、安装rubygemredis依赖wget /downloads/redis-3.3.0.gemgem install -l redis-3.3.0 gemcp /{redishome}/scr/redis-trib.rb /usr/local/bin3、测试redis-trib.rb二、准备节点1、创建文件夹mkdir /redis-cluster-tribcd /redis-cluster-tribmkdir 6379 6380 6381 6382 6383 63842、创建并配置redis.conf分别在6379-6384六个文件夹中创建redis-node.conf文件,并添加配置,配置内容如下redis-6379.conf,每个文件根据对应名修改一下vim redis-6379.confport 6379daemonize yeslogfile "6379.log"dbfilename "dump-6379.rdb"dir "/redis-cluster-trib/6379/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6379.conf"vim redis-6380.confport 6380daemonize yeslogfile "6380.log"dbfilename "dump-6380.rdb"dir "/redis-cluster-trib/6380/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6380.conf"vim redis-6381.confport 6381daemonize yeslogfile "6381.log"dbfilename "dump-6381.rdb"dir "/redis-cluster-trib/6381/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6381.conf"vim redis-6382.confport 6382daemonize yeslogfile "6382.log"dbfilename "dump-6382.rdb"dir "/redis-cluster-trib/6382/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6382.conf"vim redis-6383.confport 6383daemonize yeslogfile "6383.log"dbfilename "dump-6383.rdb"dir "/redis-cluster-trib/6383/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6383.conf"vim redis-6384.confport 6384daemonize yeslogfile "6384.log"dbfilename "dump-6384.rdb"dir "/redis-cluster-trib/6384/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6384.conf"3、启动各个节点redis-server redis-6379.confredis-server redis-6380.confredis-server redis-6381.confredis-server redis-6382.confredis-server redis-6383.confredis-server redis-6384.conf4、检查启动情况cat 6379/6379.logcat 6380/6380.logcat 6381/6381.logcat 6382/6382.logcat 6383/6383.logcat 6384/6384.logps -ef |grep redis四、创建集群1、创建集群redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384replicas 表示为每个主节点设置多少个从节点,如果部署节点使用不同的ip,会尽可能保证主从不在一个节点上2、健康性检查redis-trib.rb check 127.0.0.1:6380四、扩容集群1、添加2个节点mkdir 6385 6386vim redis-6385.confport 6385daemonize yeslogfile "6385.log"dbfilename "dump-6385.rdb"dir "/redis-cluster-trib/6385/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6385.conf"vim redis-6386.confport 6386daemonize yeslogfile "6386.log"dbfilename "dump-6386.rdb"dir "/redis-cluster-trib/6386/"cluster-enabled yescluster-node-timeout 15000cluster-config-file "nodes-6386.conf"2、启动节点redis-server redis-6385.confredis-server redis-6386.conf3、添加入集群redis-trib.rb add-node 127.0.0.1:6385 127.0.0.1:6379redis-trib.rb add-node 127.0.0.1:6386 127.0.0.1:6379注意这里还是显示为主节点,要设置它为从节点要redis-trib.rb add-node 127.0.0.1:6386 127.0.0.1:6379 --slave --master-id<arg> 或者看后面变化(在缩减章节)4、迁移槽redis-trib.rb info127.0.0.1:6379可以看到各个主节点槽情况5、批量迁移redis-trib.rbreshard 127.0.0.1:6379数据迁移之前会打印迁移计划,确认后进行迁移四、收缩集群跟上面一样,将要清空节点移至其他节点上。

安装Redis完整过程

安装Redis完整过程

概述首先报告一下我系统的版本:Java代码1.[root@firefish init.d]# cat /etc/issue系统版本信息如下:引用CentOS release 6.4 (Final)Kernel \r on an \m安装Redis希望将Redis安装在此目录下:引用/usr/local/redis参考http://redis.io/download的安装说明,做调整:引用$ mkdir /usr/local/redis$ cd /usr/local/src$ wget /files/redis-2.6.14.tar.gz$ tar xzf redis-2.6.14.tar.gz$ ln -s redis-2.6.14 redis #建立一个链接$ cd redis$ make PREFIX=/usr/local/redis install #安装到指定目录中注意上面的最后一行,我们通过PREFIX指定了安装的目录。

如果make失败,一般是你们系统中还未安装gcc,那么可以通过yum安装之:Java代码1.yum install gcc安装完成后,则执行make.在安装redis成功后,你将可以在/usr/local/redis看到一个bin的目录,里面包括了以下文件:Java代码1.redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server将Redis做成一个服务1.复制脚本到/etc/rc.d/init.d目录按以上步骤安装Redis时,其服务脚本位于:Java代码1./usr/local/src/redis/utils/redis_init_script必须将其复制到/etc/rc.d/init.d的目录下:Java代码1.cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis以下将redis_init_script复制到/etc/rc.d/init.d/,同时易名为redis。

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集群模式。

如何部署分布式 Redis 集群

如何部署分布式 Redis 集群

如何部署分布式 Redis 集群Redis 是一个开源的高性能 key-value 存储系统,它支持多种数据结构,如字符串、哈希、列表、集合等。

在实际应用中,Redis 常常用于缓存、消息队列、解决计数器、限速、分布式锁等场景中。

但是,在高并发、大数据量的应用场景中,单机 Redis 存在单点故障、容量瓶颈等问题。

为了解决这些问题,我们可以考虑使用 Redis 的分布式部署方式。

本文将介绍如何部署分布式 Redis 集群。

1. Redis 集群概述Redis 集群是一种分布式的 Redis 部署方式,它通过将数据分散到多个节点上,实现数据的高可用和水平扩展。

Redis 集群有以下几个特点:(1)分布式架构:Redis 集群由多个节点组成,每个节点都存储着一部分数据,节点之间通过 Gossip 协议交换信息,实现数据的分布式管理。

(2)自动数据迁移:当新增或删除节点时,Redis 集群会自动将数据迁移到新的节点,保证数据的一致性和高可用性。

(3)高可用性:Redis 集群采用主从复制机制,每个主节点都有若干个从节点,当主节点出现故障时,从节点会立即接管主节点的工作,确保服务的高可用性。

(4)数据分区:Redis 集群将数据分散到多个节点上,每个节点负责不同的数据分区,避免了单机 Redis 存在的容量瓶颈。

2. Redis 集群部署前准备工作在部署 Redis 集群之前,需要完成以下准备工作:(1)安装 Redis:在部署 Redis 集群前,需要在每个节点上安装 Redis,确保各节点软件版本一致。

(2)配置文件修改:修改每个节点的配置文件,可以通过Redis 集群提供的 redis-trib.rb 工具自动生成配置文件,并在配置文件中设置集群密码、节点 IP 和端口等参数。

(3)安装 Ruby 环境:redis-trib.rb 工具依赖 Ruby 环境,需要安装 Ruby。

3. Redis 集群部署步骤(1)创建节点:创建 Redis 集群的第一步是创建 Redis 节点。

Windows下Redis的安装使用教程

Windows下Redis的安装使用教程

Windows下Redis的安装使⽤教程本⽂主要为⼤家介绍缓存技术中的⼀种Redis的安装和使⽤,供⼤家参考,具体内容如下⼀、下载Redis for windows在⽹络中搜索Redis fow windows,就可以下载Redis的压缩包。

解压包。

会发现其中有32位和64位的不同版本的包,根据需要,使⽤对应的压缩包即可。

⼆、解压我使⽤的是redisbin_x64.zip的压缩包,将其解压到redis的⽂件夹中。

解压之后,会发现内容只有⼀些.exe的⽂件。

到这⾥,redis就算做好了⼀半了。

三、配置在redis下新建⼀个conf的⽂件夹,并创建 redis.conf ⽂本⽂件。

将⼀下内容复制到配置⽂件中。

# Redis configuration file example# By default Redis does not run as a daemon. Use 'yes' if you need it.# Note that Redis will write a pid file in /var/run/redis.pid when daemonized.# 是否以后台进程的形式运⾏,默认为nodaemonize no# When run as a daemon, Redis write a pid file in /var/run/redis.pid by default.# You can specify a custom pid file location here.# 如果指定以后台形式执⾏,则需要指定⼀个pid⽂件pidfile /var/run/redis.pid# Accept connections on the specified port, default is 6379#监听端⼝号port 6379# If you want you can bind a single interface, if the bind option is not# specified all the interfaces will listen for connections.# 绑定主机IP# bind 127.0.0.1# Close the connection after a client is idle for N seconds (0 to disable)# 客户端空闲超时时间,设置为0,则没有超时。

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)。

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。

官网下载3.0.0版本,之前2.几的版本不支持集群模式下载地址:http://download.redis.io/releases/redis-3.0.2.tar.gz 2:上传服务器,解压,编译tar -zxvf redis-3.0.2.tar.gz.tar.gzmv redis-3.0.2.tar.gz.tar.gz redis3.0cd /usr/local/redis3.0makemake install3:创建集群需要的目录mkdir -p /usr/local/clustercd /usr/local/clustermkdir 7000mkdir 7001mkdir 7002mkdir 7003mkdir 7004mkdir 70054:修改配置文件redis.confcp /usr/local/redis3.0/redis.conf /usr.local/clustervi redis.conf##修改配置文件中的下面选项port 7000daemonize yescluster-enabled yescluster-config-file nodes.confcluster-node-timeout 5000appendonly yes##修改完redis.conf配置文件中的这些配置项之后把这个配置文件分别拷贝到7000/7001/7002/7003/7004/7005目录下面cp /usr/local/cluster/redis.conf /usr/local/cluster/7000cp /usr/local/cluster/redis.conf /usr/local/cluster/7001cp /usr/local/cluster/redis.conf /usr/local/cluster/7002cp /usr/local/cluster/redis.conf /usr/local/cluster/7003cp /usr/local/cluster/redis.conf /usr/local/cluster/7004cp /usr/local/cluster/redis.conf /usr/local/cluster/7005##注意:拷贝完成之后要修改7001/7002/7003/7004/7005目录下面redis.conf 文件中的port参数,分别改为对应的文件夹的名称5:分别启动这6个redis实例cd /usr/local/cluster/7000redis-server redis.confcd /usr/local/cluster/7001redis-server redis.confcd /usr/local/cluster/7002redis-server redis.confcd /usr/local/cluster/7003redis-server redis.confcd /usr/local/cluster/7004redis-server redis.confcd /usr/local/cluster/7005redis-server redis.conf##启动之后使用命令查看redis的启动情况ps -ef|grep redis如下显示则说明启动成功# ps -ef|grep redisroot 13703 1 0 10:03 ? 00:00:00 redis-server *:7000 [cluster] root 14015 1 0 10:04 ? 00:00:00 redis-server *:7002 [cluster] root 14133 1 0 10:04 ? 00:00:00 redis-server *:7003 [cluster] root 14172 1 0 10:04 ? 00:00:00 redis-server *:7004 [cluster] root 14187 1 0 10:04 ? 00:00:00 redis-server *:7005 [cluster] root 14323 1 0 10:04 ? 00:00:00 redis-server *:7001 [cluster]6.升级ruby 安装gem安装gem 需要ruby的版本在 1.8.7 以上,默认的centos5 上都是1.8.5 版本,所以首先你的升级你的ruby ,rpm -ivh /el/5/products/x86_64/puppetlabs-release-5-6.noar ch.rpmyum install ruby ruby-devel rubygems rpm-build检查ruby 版本:#ruby -vruby 1.8.7 (2013-06-27 patchlevel 374) [x86_64-linux]是否安装rubygems:# rpm -qa|grep rubyruby-rdoc-1.8.7.374-2.el5ruby-1.8.7.374-2.el5ruby-devel-1.8.7.374-2.el5ruby-devel-1.8.7.374-2.el5ruby-mode-1.8.5-24.el5ruby-irb-1.8.7.374-2.el5ruby-libs-1.8.7.374-2.el5ruby-libs-1.8.7.374-2.el5rubygems-1.3.7-1.el57.gem 安装redis ruby 接口gem install redis8:执行redis的创建集群命令创建集群#redis-trib.rb的create子命令构建#--replicas 则指定了为Redis Cluster中的每个Master节点配备几个Slave节点#节点角色由顺序决定,先master之后是slave创建方式:cd /usr/local/redis3.0/src./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005错误笔记备注:8.1执行上面的命令的时候会报错,因为是执行的ruby的脚本,需要ruby的环境错误内容:/usr/bin/env: ruby: No such file or directory所以需要安装ruby的环境,这里推荐使用yum install ruby安装yum install ruby8.2然后再执行第6步的创建集群命令,还会报错,提示缺少rubygems组件,使用yum安装错误内容:./redis-trib.rb:24:in `require': no such file to load -- rubygems (LoadError)from ./redis-trib.rb:24yum install rubygems8.3再次执行第8步的命令,还会报错,提示不能加载redis,是因为缺少redis 和ruby的接口,使用gem 安装错误内容:/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in`gem_original_require': no such file to load -- redis (LoadError)from /usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from ./redis-trib.rb:25gem install redis8.4 再次执行第8步的命令,正常执行输入yes,然后配置完成。

注意观察主从的配置:默认是前三个节点7000 7001 7002 是主,后3个节点7003 7004 7005 是从如果是部署在不同的服务器,请根据主从分部规则,分开在不同的服务器至此redis集群即搭建成功!9:使用redis-cli命令进入集群环境redis-cli -c -p 7000三.测试篇1).检查集群状态,#redis-trib.rb的check子命令构建#ip:port可以是集群的任意节点./redis-trib.rb check 1 127.0.0.1:7000最后输出如下信息,没有任何警告或错误,表示集群启动成功并处于ok状态2):添加新master节点(1)添加一个master节点:创建一个空节点(empty node),然后将某些slot移动到这个空节点上,这个过程目前需要人工干预a):根据端口生成配置文件(ps:establish_config.sh是我自己写的输出配置脚本)sh establish_config.sh 6386 > conf/redis-6386.confb):启动节点nohup redis-server /opt/redis/conf/redis-6386.conf > /opt/redis/logs/redis-6386.log 2>&1 &c):加入空节点到集群add-node 将一个节点添加到集群里面,第一个是新节点ip:port, 第二个是任意一个已存在节点ip:portredis-trib.rb add-node 10.10.34.14:6386 10.10.34.14:6381node:新节点没有包含任何数据,因为它没有包含任何slot。

相关文档
最新文档