写在前面
2015年2月,Redis3.0.0 发布,redis3.0版本之后支持Cluster,关于redis集群的介绍,了解请看 redis中文简介 。
我准备在一台linux中来部署redis集群,因为集群的运行需要6台服务才能正常运行,所以我在一台linux服务上创建6个节点,用来模拟3主3从这种伪分布式集群。redis3.0及之后的releases版本,大家可以直接访问redis.io官网,下载redis.tar.gz。
集群搭建
1.下载和解包
cd /usr/local/
wget http://download.redis.io/releases/redis-3.0.3.tar.gz
(大家可以选择自己想安装的releases版本)
tar -zxvf redis-3.0.3.tar.gz
mv redis-3.0.3 redis
2.编译安装
cd redis
make && make install
有些人在这里可能会碰到一个错误导致编译不过(如下)
make[1]: Entering directory
/redis/src'
/redis/src’
CC adlist.o
In file included from adlist.c:34:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory
make: * [all] Error 2Error 2
原因是没有安装jemalloc内存分配器,可以安装jemalloc 或 直接 输入make MALLOC=libc && make install
3. 创建redis节点
在一台linux服务上创建6个节点,3主3从。
cd /usr/local/
mkdir redis_cluster //创建集群目录
mkdir 7000 7001 7002 7003 7004 7005
//分别代表六个节点 其对应端口 7000 7001 7002 7003 7004 7005
下面创建7000节点为例,其他节点大家按此例操作即可,
cd ./7000
cp /usr/local/redis/redis.conf ./ //拷贝到当前7000目录
vi redis.conf //编辑配置 主要修改一下几个参数
daemonize yes //redis后台运行
pidfile /var/run/redis_7000.pid //pidfile文件对应7000
port 7000 //端口7000
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes.conf //集群的配置 配置文件首次启动自动生成
cluster-node-timeout 5000 //请求超时 设置5秒够了
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
配置好了,就相应地把这个修改后的配置文件拷贝到7003 7004 70054 7005 7002 目录,注意要修改监听端口port 7001 7002 7003 7004 7005。
接下来,启动服务,进入节点目录
依次执行 redis-server redis.conf
可以看到生成了appendonly.aof nodes.conf
ps -ef | grep redis 查看是否启动成功
netstat -tnlp | grep redis 可以看到redis监听端口
4. 创建集群
前面已经准备好了搭建集群的redis节点,接下来我们要把这些节点都串连起来搭建集群。创建集群需要ruby的环境,官方提供了一个工具:redis-trib.rb (/usr/local/redis/src/redis-trib.rb),所以我们还得安装ruby.
安装rubygems组件
yum -y install ruby ruby-devel rubygems rpm-build
接着,加载redis,需要redis和ruby的接口,使用gem 安装
gem install redis
可是,我却出了一点问题,但按提示操作后再执行gem install redis 就好啦(如下图)
上面的步骤完事了,接下来运行一下redis-trib.rb
/usr/local/redis/src/redis-trib.rb
确认所有的节点都启动,接下来使用参数create 创建集群
/usr/local/redis/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
解释下, –replicas 1 表示 自动为每一个master节点分配一个slave节点 上面有6个节点,程序会按照一定规则生成 3个master(主)3个slave(从)
ps:防火墙一定要开放监听的端口 ,否则会创建失败。
运行中,提示Can I setthe above configuration? (type’yes’to accept): yes //输入yes
ok,查看一下 /usr/local/redis/src/redis-trib.rb check 127.0.0.1:7000
可以从图中看到7000,7002被选为master了
至此,集群已经初步搭建好了。
5. 测试
1)get 和 set数据
redis-cli -c -p 7000
进入命令窗口,直接 set wb wudalang_gd
直接根据hash匹配切换到相应的slot的节点上。
还是要说明一下,redis集群有16383个slot组成,通过分片分布到多个节点上,读写都发生在master节点。
2)宕机测试
假如我们把上面的master为7000或7002的其中一个节点down掉,大家可以再去看一下各个节点的状态,测试一下,依然没有问题,会有新的从节点变为master,集群依然能继续工作。
原因: redis集群 通过选举方式进行容错,保证一台Server挂了还能跑,这个选举是全部集群超过半数以上的Master发现其他Master挂了后,会将其他对应的Slave节点升级成Master.
PS: 超过半数挂了那救不了了,整个集群就无法工作了。
3)关于一致性 hash
目前还没什么公司用redis来做数据库持久化的吧,我们只是拿来做cache,官网说的很清楚,Redis Cluster is not able to guarantee strong consistency .
写在最后
网上关于redis集群的资料真的是很乱,我很多次走入别人挖得坑半天爬不出来,有的人居然在redis3.0.0还没releases就忽悠人(气哭~),不过,我相信随着官方的不断迭代更新和大家的共同努力,Redis Cluster一定会逐渐完善成熟的!
我的csdn
相关推荐
8. **集群搭建**:如果你需要扩展Redis的处理能力,可以搭建Redis集群。这涉及到多个Redis实例的部署和配置,以及集群的初始化和维护。 9. **监控与性能优化**:使用Redis内置的INFO命令获取服务器状态信息,监控...
Redis 还支持主从复制,可以轻松搭建高可用集群。主节点负责数据写入,从节点复制主节点的数据,当主节点故障时,可以从节点接管服务,保证服务不间断。此外,Redis 3.0 版本引入了 Cluster 模式,允许在多节点间...
在描述中提到,此Redis版本可以用于搭建nginx+tomcat集群。Nginx是一款高性能的HTTP和反向代理服务器,而Tomcat是一款开源的Java应用服务器,主要用于部署Java Web应用。将Redis与Nginx和Tomcat结合,可以构建高可用...
在Windows上安装Redis-3.0.501,首先需要解压`Redis-x64-3.0.501`压缩包,然后找到`redis-server.exe`启动服务。你可以通过命令行窗口执行这个可执行文件,或者创建一个服务以便后台自动启动。 4. **配置文件**: ...
然而,"Redis-x64-3.0.504windows集群已经配置好的版本"提供了一个便捷的解决方案,特别适合那些希望快速搭建Redis集群而又不想花费太多时间在配置上的用户。 该压缩包包含的内容如下: 1. **Redis on Windows....
Redis 3.0 集群环境安装手册 Redis 3.0 集群环境安装手册是指在 Linux 操作系统中安装和配置 Redis 3.0 集群的步骤指南。Redis 是一个开源、基于内存的数据结构存储系统,可以用作数据库、消息队列、缓存层等。 ...
6. **集群功能**:从Redis 3.0开始,引入了Redis Cluster,支持数据分片和自动故障转移,可扩展到数百GB甚至TB的数据规模。 在这个压缩包中,`start.bat`文件是一个批处理脚本,用于启动Redis服务。使用该脚本,...
Redis 集群是Redis官方提供的分布式解决方案,自Redis 3.0版本开始引入,旨在解决单机Redis在面临内存限制、高并发等挑战时的问题。集群通过将数据分布到多个节点来提供扩展性和容错性,当某个节点故障时,能够自动...
redis从3.0开始支持集群功能。redis集群采用无中心节点方式实现,无需proxy代理,客户端直接与redis集群的每个节点连接,根据同样的hash算法计算出key对应的slot,然后直接在slot对应的redisj节点上执行命令。在...
搭建redis集群的工具,先试试下面的方法https://raw.githubusercontent.com/MSOpenTech/redis/3.0/src/redis-trib.rb 打开该链接如果没有下载,而是打开一个页面,那么将该页面保存为redis-trib.rb 建议保存到Redis...
12. **集群搭建**: Redis 3.0及以上版本支持集群模式,可以创建多个节点并分散数据,提供更高的可用性和扩展性。搭建集群需要配置文件和命令行工具,如`redis-trib.rb`。 总之,Redis在Windows下的安装部署涉及...
redis3.0 widows集群 spring整合jedis redis搭建window集群代码和文档rubygems-2.5.1和rubyinstaller-2.2.3-x64软件下载
本文档将详细介绍如何在CentOS 6.5环境下搭建Redis 3.0集群,并通过具体的步骤指导用户完成整个部署过程。 #### 二、环境准备与要求 **系统环境**: CentOS 6.5 **硬件要求**: 至少3台主机或虚拟机(为了简化示例...
8. **集群搭建**:Redis 3.0引入了集群功能,允许在多台机器上部署分布式Redis。在Windows环境中,搭建集群需要更复杂的配置,包括正确设置节点间的通信和槽分配。 9. **监控和性能优化**:可以使用`INFO`命令获取...
Redis,全称Remote Dictionary ...在Windows环境下,通过"Redis-x64-3.2.100.msi"这样的安装包,可以方便地搭建本地Redis服务,进行开发和测试。随着版本的迭代,Redis不断优化和完善,更好地适应了大数据时代的需求。
### Redis 3.x 集群配置操作文档 #### Redis 集群简介 ...以上步骤详细介绍了如何配置和搭建 Redis 3.x 的集群环境。通过这些步骤,你可以建立一个具备高可用性和分布式处理能力的 Redis 集群系统。
15. **集群搭建**:Redis 3.0引入了官方集群支持,允许用户创建包含多个节点的分布式系统,提供更高的可用性和扩展性。 16. **安全**:虽然Redis默认不启用密码认证,但可以通过修改配置文件启用`requirepass`来...
### Redis 5.0.2 高可用集群搭建详解 #### 一、Redis集群方案比较 Redis 是一种高性能的键值存储系统,在多种场景中被广泛应用于缓存、消息队列以及实时分析等领域。随着应用规模的增长,单一的 Redis 实例往往...
本章节主要介绍如何搭建一个基本的Redis 3.0集群环境,包括必要的软件安装以及集群的配置过程。 ##### 2.1 环境要求 - **操作系统**:Linux(推荐CentOS 7+) - **硬件资源**:至少三台物理或虚拟服务器 - **网络...
尽管这个版本较旧(Redis现在已经发展到6.x版本),但仍然可以作为学习和测试的基础。在实际生产环境中,为了确保安全性、性能和新特性,通常会使用更接近当前稳定版本的Redis。 在使用Redis时,有几点需要注意: 1...