Redis--redis集群环境搭建
1.redis-cluster架构图
Redis 自3.0以后开始支持集群。从上图我们可以看出,redis集群的每个节点之间都进行相互通信,在redis集群中,不存在代理层,即没有固定的入口。redis集群的每个节点都可以作为入口。
注意:
1.每个节点的存储数据不一样。
2.所有的redis节点彼此互联(PING-PONG机制),内部使用二进制协议优化传输速度和带宽.
节点的fail是通过集群中超过半数的节点检测失效时才生效.
3.客户端与redis节点直连,不需要中间proxy层.客户端不需要连接集群所有节点,连接集群中任何一个可用节点即可
4.redis-cluster把所有的物理节点映射到[0-16383]slot上,cluster 负责维护node<->slot<->value
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。
2.Rdis集群搭建
由于redis中存在半数投票机制,所以一般集群节点为的数量为奇数台。所以搭建一个redis集群最少需要三台服务器。
为了保证高可用,每台redis又要对应一台备份服务器。所以redis集群总共需要6台服务器。
在线下,我们可以在一台虚拟机上开启六个redis实例,每个实例配置不同的接口,来搭建一个伪静态化,具体步骤如下:
1.首先准备6个redis的实例:
(1)先在usr/local 下新建一个redis_cluster目录
进入我们之前安装redis的目录:
(2)将redis目录下的bin目录复制到新建的redis_cluster中。并取名为redis01
cp redis/bin/ redis_cluster/redis01 -r
(3)删除redis01/bin目录下dump.rdb文件,这个文件时rdb持久化方案的备份文件。若结点中有数据,集群无法搭建。
(4)修改redis.conf文件,设置端口号。
将默认的6379修改为7001。
(5)将redis01复制5份,分配配置不同端口号,并将redis.conf配置文件的中的cluster-enabled yes的注解放开。
2.启动所有redis实例
在redis_cluster目录下新建一个startall.sh文件、
将下面的内容复制到该文件中,startall文件作为一个批处理,启动该文件时可以启动所有的redis实例。
cd redis01
./redis-server redis.conf
cd ..
cd redis02
./redis-server redis.conf
cd ..
cd redis03
./redis-server redis.conf
cd ..
cd redis04
./redis-server redis.conf
cd ..
cd redis05
./redis-server redis.conf
cd ..
cd redis06
./redis-server redis.conf
cd ..
注意:startall.sh文件创建后并不是可执行的,需要修改一下权限:命令为:chmod u+x startall.sh、
下面可以使用./startall.sh命令执行该文件。
通过查看进程,我们可以看到6个redis实例均已启动。
3.创建集群
集群创建需要用到ruby,所以需要安装ruby的环境。
yum install ruby
yum install rubygems (ruby包管理器)
安装 redis-3.0.0.gem包(这个包可以从网上下载后传到服务器上)
安装号环境之后,我们进入到redis源码包的src目录下
找到一个redis-trib.rb文件。
将此脚本复制到/usr/local/redis_cluster目录下
./redis-trib.rb create --replicas 节点1地址:端口号 节点2地址:端口号 节点3地址:端口号。。。。。。。。。。。。。。。
输入yes,集群创建成功。
Redis--redis集群环境搭建的更多相关文章
- Redis 快速集群环境搭建
环境 Linux :centos 7 redis:redis-5.0.9 Redis 集群环境搭建步骤 早期 redis 版本集群环境搭建需要安装 ruby 运行环境,搭建步骤比较繁琐: redis ...
- redis哨兵集群环境搭建
一.哨兵的介绍 哨兵(sentinal)是redis集群架构中非常重要的一个组件,主要功能如下: 集群监控,负责监控redis master和slave进程是否正常工作 消息通知,如果某个redis实 ...
- Redis之集群环境搭建
前面文章介绍了Redis的主从复制,虽然该模式能够在一定程度上提高系统的稳定性,但是在数据访问量比较大的情况下,单个master应付起来还是比较吃力的,这时我们可以考虑将redis集群部署,本文就来重 ...
- Redis与Redis 伪集群环境的搭建
一 .准备工作 GCC编译环境 ruby运行环境 安装ruby脚本运行包 二.环境安装 1.GCC环境 首先,因为redis是由C语言编写的,所以需要安装GCC环境,可以用 gcc -v 命令来检查是 ...
- Docker 搭建 Redis Cluster 集群环境
使用 Docker 搭建 Redis Cluster,最重要的环节就是容器通信的问题,这一块我们在之前的文章中已经给大家解决了<Docker 网络模式详解及容器间网络通信>,本篇文章主要练 ...
- Docker Compose 搭建 Redis Cluster 集群环境
在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...
- Redis集群环境搭建实践
0 Redis集群简介 Redis集群(Redis Cluster)是Redis提供的分布式数据库方案,通过分片(sharding)来进行数据共享,并提供复制和故障转移功能.相比于主从复制.哨兵模式, ...
- Hadoop+Spark:集群环境搭建
环境准备: 在虚拟机下,大家三台Linux ubuntu 14.04 server x64 系统(下载地址:http://releases.ubuntu.com/14.04.2/ubuntu-14.0 ...
- 项目进阶 之 集群环境搭建(三)多管理节点MySQL集群
上次的博文项目进阶 之 集群环境搭建(二)MySQL集群中,我们搭建了一个基础的MySQL集群,这篇博客咱们继续讲解MySQL集群的相关内容,同时针对上一篇遗留的问题提出一个解决方案. 1.单管理节点 ...
- Spark 1.6.1分布式集群环境搭建
一.软件准备 scala-2.11.8.tgz spark-1.6.1-bin-hadoop2.6.tgz 二.Scala 安装 1.master 机器 (1)下载 scala-2.11.8.tgz, ...
随机推荐
- ClsoSee(v2) Alpha测试中!这是一个临时的帮助页面...
Clso See 测试中,最新的更新信息会显示在这里,欢迎您随时关注新版本动态. 您可以单击这里让程序打开本地帮助文件(新说明.txt) 等程序完成后,会制作专门的帮助页面. 因为采用了键盘Hook技 ...
- NLayerAppV3--DDD之领域层
回顾:NLayerAppV3是一个使用.net 2.1实现的经典DDD的分层架构的项目. NLayerAppV3是在NLayerAppV2的基础上,使用.net core2.1进行重新构建的:它包含了 ...
- easyui datagrid sort 表头 排序
datagrid的点击列表头刷新,分为两种,一种是页面刷新,不涉及后台服务器数据,不会从新查询数据库,只会刷新当前页数据: 一种是服务器级刷新,会重新加载全部数据. 如果不需要自定义排序,可以直接使用 ...
- js 日期去掉 -
语法 stringObj.replace(rgExp, replaceText) replace 方法的语法包括下述部分: stringObj 必选项.要执行该替换的 String 对象或文字.该对象 ...
- win10开机 依赖服务或组无法启动
win10开机后 音频服务 网络服务等都没有开启,下面是开启步骤 Win+R打开的[运行]窗口输入“msconfig”后回车或者点击[确定] 在打开的[系统配置]窗口选择[服务]选项卡 在[服务]选项 ...
- Unix下cp、tar、sudo命令的使用
环境 Ubuntu14.04 (这里用这样一个类Unix系统来代替Unix,sudo命令也是linux下的一个命令) 实例 : Ubuntu firefox flash插件的安装 到Adobe下载ta ...
- 算法逆向6——RSA识别
本文原创作者:i春秋作家——icq5f7a075d 1. 算法介绍 RSA算法是一种用数论构造的.基于大合数因子分解困难性的公开密钥密码.由于RSA密码既可用于加密,又可用于数字签名,安全.易懂,因此 ...
- 【javascript】iOS Safari 中点击事件失效的解决办法
问题描述 当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. ...
- PHP之旅6 php的类与面向对象
对于类与面向对象的问题其实刚开始不用非要弄懂原因,直接先这样用,用多了你就发现你会了.所以 学习面向对象就先去做.用的多了你就发现这个就是这样的. 对于类的理解,我自己的理解就是:有一个叫做类的东西里 ...
- centos6下无法使用lsof命令"-bash: lsof: command not found"
1. 问题描述在centos下, 无法使用命令lsof, 出现以下信息:# lsof -i:3690-bash: lsof: command not found2. 解决方法我们可以通过yum来安装: ...