linux环境搭建redis集群,Linux下搭建Redis分布式集群(详细图解演示)
一 环境搭建.
1.1 环境准备.三台虚拟机.redis的版本是3.2.9.redis的各个版本下载地址:链接. 三个主节点三个从节点.
①:192.168.199.133.(部署两个Redis服务.)分别在目录redis_cluster7001和7002下.(作为集群控制端,需要编译安装redis,并且安装Ruby环境).
②:192.168.199.136.(部署两个Redis服务.)分别在目录redis_cluster7003和7004下.
③:192.168.199.137.(部署两个Redis服务.)分别在目录redis_cluster7005和7006下.
其中192.168.199.133下载了Redis并且编译安装了.
分别完成另外两台的目录创建.
①:192.168.199.136.
②:192.168.199.137.
1.2 配置文件复制.
192.168.199.133下执行:
scp -r /usr/local/redis/bin root@192.168.199.136:/usr/local/redis(-r递归复制目录)
scp -r /usr/local/redis/bin root@192.168.199.137:/usr/local/redis
1.3 查看复制结果.
复制redis下的redis.conf目录至redis_cluster下的对应目录下.
①:199.168.199.133.
cp redis.conf /usr/local/redis_cluster/7001
cp redis.conf /usr/local/redis_cluster/7002
②:192.168.199.136.
scp /usr/local/redis-3.2.9/redis.conf root@192.168.199.136:/usr/local/redis_cluster/7003
scp /usr/local/redis-3.2.9/redis.conf root@192.168.199.136:/usr/local/redis_cluster/7004
③:192.168.199.137.(同上)
scp /usr/local/redis-3.2.9/redis.conf root@192.168.199.137:/usr/local/redis_cluster/7005
scp /usr/local/redis-3.2.9/redis.conf root@192.168.199.137:/usr/local/redis_cluster/7006
二.修改配置文件.
2.1修改下面几个配置项.
port 7001 //六个节点配置文件分别是7001-7003
bind 192.168.1.109 //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访,和单机集群有区别
daemonize yes //redis后台运行
pidfile /var/run/redis_7001.pid //pidfile文件对应7001-7003
cluster-enabled yes //开启集群
cluster-config-file nodes_7001.conf //保存节点配置,自动创建,自动更新对应7001-7003
cluster-node-timeout 5000 //集群超时时间,节点超过这个时间没反应就断定是宕机
appendonly yes //存储方式,aof,将写操作记录保存到日志中
7001~7006的6个配置文件都修改一下.根据所在目录修改即可.
2.2 192.168.199.133做为创建集群的主控制端,安装Ruby环境.(创建集群环境的脚本是Ruby语言编写的,需要Ruby的环境).
①:安装Curl.
sudo yum install curl
查看Curl的版本.curl --version
②:RVM的安装.(直接yum安装会出 现这样的错误.RVM是Ruby的包管理器)
gem install redis
ERROR: Error installing redis:
redis requires Ruby version >= 2.2.2.)
参考这篇文章的解决方式:链接.
下面是自己按照文章中的解决方式走了一遍,是可行的.
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
curl -sSL https://get.rvm.io | bash -s stable
find / -name rvm -print
source /usr/local/rvm/scripts/rvm
rvm list known(列出已知的rvm的版本)
rvm install 2.4.1(安装rvm 2.4.1).
rvm use 2.4.1(使用2.4.1的版本).
rvm use 2.4.1 --default(设置ruby的默认版本)
rvm remove 2.0.0(移除ruby2.0.0的版本).
ruby --version(查看ruby的版本).
安装redis.
三:启动Redis集群.
3.1我三台虚拟机由于没有启动防火墙,如果启动了,做一下这些端口的映射.首先是启动6个Redis服务.
①:192.168.199.133的7001和7002服务.
./redis-server /usr/local/redis_cluster/7001/redis.conf
./redis-server /usr/local/redis_cluster/7002/redis.conf
ps -ef | grep -i redis
② 192.168.199.136
./redis-server /usr/local/redis_cluster/7003/redis.conf
./redis-server /usr/local/redis_cluster/7004/redis.conf
ps -ef | grep -i redis
③ 192.168.199.137
./redis-server /usr/local/redis_cluster/7005/redis.conf
./redis-server /usr/local/redis_cluster/7006/redis.conf
ps -ef | grep -i redis
至此6台Redis服务均已成功启动了.
3.2 Redis的Ruby脚本创建集群.
redis-3.2.9的src目录下有redis-trib.rb脚本.
./redis-trib.rb create --replicas 1 192.168.199.133:7001 192.168.199.136:7003 192.168.199.137:7005 192.168.199.133:7002 192.168.199.136:7004 192.168.199.137:7006 (这里说明一下,按照顺序,前面的是主节点后面三个是从节点,--replicates 1表示一个主节点有三个从节点的.)
三个主节点的Hash槽范围是:一共有16384的hash solt。(0~16383)
7001:(0~5460)
7003:(5461~10922)
7005:(10923~16383)
至此,完成了Linux下的三台机器上三主三从节点的分布式Redis的集群搭建.这里是在虚拟机里面搭建,如果是云服务器上,肯定是开启了防火墙的,注意添加集群的端口开放,以及安全组的相应端口开放,否则会一直Join...添加服务中的.
四 测试Redis集群.
4.1.首先是Redis客户端连接一下Redis服务.key值的测试.
./redis-cli -h 192.168.199.136 -p 7003 -c(-h是IP,-p是端口,-c是连接集群)
连接集群后和单台操作redis的key一样,这里是设置了一个key,没有跳转是因为分配hash槽是就分配在这个7003主节点上了.
Redis Cluster值分配规则,所以分配key的时候,它会使用CRC16(‘my_name’)%16384算法,来计算,将这个key 放到哪个节点,这里分配到了15118slot 就分配到了7005(10923~16383)这个节点上。所以有这样一个跳转:
-> Redirected to slot [15118] located at 192.168.199.137:7005
看一下下面删除这两个key时,会更清楚一些.7005主节点跳转之7003主节点.5798属于(5461~10922).
4.2 集群宕机测试.
①:首先是干掉一个主节点,例如7003.(当这个主节点有从节点的时候)
./redis-trib.rb check 192.168.199.133:7001(check检查集群)7003对应的主节点挂了,则从节点7002升为主节点
cluster nodes(这里连接一个从节点7004).
②:再次干掉一个主节点(当这个主节点没有从节点的时候).直接说就是7002节点.
再次检测集群.
./redis-trib.rb check 192.168.199.133:7001
至此完成了,Linux下的分布式Redis的集群搭建的完整过程.遇到了一些问题,多思考一下,还是比较简单的.
linux环境搭建redis集群,Linux下搭建Redis分布式集群(详细图解演示)相关推荐
- Apache shiro集群实现 (六)分布式集群系统下的高可用session解决方案---Session共享
Apache shiro集群实现 (一) shiro入门介绍 Apache shiro集群实现 (二) shiro 的INI配置 Apache shiro集群实现 (三)shiro身份认证(Shiro ...
- Redis第一集:Windows下安装Redis和测试
Redis第一集:Windows下安装Redis和测试 一.资源 Windows下的Redis的下载地址 点击这里即可下载,如果进不去GitHub的话,可以上网搜一下怎么进GitHub,搭个梯子(●ˇ ...
- linux 搭建开发stm32 stlink,Ubuntu下搭建stm32+stlink的开发环境
Ubuntu下搭建stm32+stlink的开发环境 热度 3已有 15960 次阅读2014-8-19 21:09 | 上周因为忙于别的事情,很久没切到ubuntu下了,这周继续弄了弄. 弄到了一些 ...
- linux搭建python运行环境_centos运行.py centos5.5下搭建python开发运行环境 - Linux - 服务器之家...
centos运行.py centos5.5下搭建python开发运行环境 发布时间:2017-04-28 来源:服务器之家 我们知道ython可以在windows.linux.android运行了,但 ...
- windows下搭建mysql集群_Windows下搭建MySQL集群
本文将讨论在Windows下搭建MySQL集群的步骤和搭建过程中应当注意的问题. 由于机器数量和性能有限,搭建环境为一台宿主机(IP:10.200.178.191),一台虚拟机(IP:10.200.1 ...
- linux环境c语言课程设计,linux环境下c语言编程课程设计
linux环境下c语言编程课程设计 (14页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 19.90 积分 1/14LINUX操作系统教程课程设计题目算术 ...
- linux环境变量重复设置,请叫下环境变量重复设置的问题
把下面的脚本保存在一个shell里面,运行一次没有问题,但是运行两次的话,$DSAGENT_HOME/bin会加上两次,因为第二次path里面已经有了$DSAGENT_HOME/bin,再加上前面一次 ...
- linux环境变量配置的方法,Linux环境变量配置方法
Linux上环境变量配置分为设置永久变量和临时变量两种.环境变量设置方法同时要考虑环境Shell类型,不同类型的SHELL设置临时变量方法和设置永久变量对应的配置文件不同.Linux环境变量本身配置过 ...
- linux环境变量配置的方法,linux 设置环境变量方法是怎样的?Linux环境变量配置注意事项是什么?...
linux系统是一种多用户的任务系统,它可以对每个用户都指定特定的用户变量.不同的程序在不同的环境下运行的时候,都需要去对环境变量来做定制,有很多朋友在设置 linux环境变量的时候,不知道如何操作, ...
- linux环境掌握熟悉一下,熟悉linux环境
<熟悉linux环境>由会员分享,可在线阅读,更多相关<熟悉linux环境(7页珍藏版)>请在人人文库网上搜索. 1.实验二 熟悉Linux环境[实验目的]1.了解Linux系 ...
最新文章
- catia过载属性使用方法_catia简明操作手册
- Linux基础-兄弟连Linux
- MP3文件转换成arduino可以直接播放的wav格式,MP3转WAV工具
- python列表的复制,扯一下浅拷贝与深拷贝的区别
- ICCV 2017 CREST:《CREST: Convolutional Residual Learning for Visual Tracking》论文笔记
- 使用PHPCS+GIT钩子保障团队开发中代码风格一致性实践
- 单双目相机畸变校正--极线校正
- 深入biztalk消息以及消息订阅发布路由机制(四)-消息的轮询和执行
- 银泰抛弃传统数据库转投阿里云PolarDB 投入产出比增长2倍以上
- CCF NOI1001 温度转换
- 10分钟体验一把Kafka[测试用例]
- 分享:EditText默认不弹出软件键盘
- Android音视频开发学习笔记
- 去除word PDF水印 去除pdf限制
- (附源码)ssm网上购物系统 毕业设计 123361
- JAVA 使用SSH/springboot集成 CXF框架发布Webservice
- liteide使用教程 linux,liteide下载-LiteIDE(Go语言开发工具) 附使用教程 X30.3 中文免安装版 - 河东下载站...
- 光谱共焦的干涉测量原理及厚度测量模式
- 期末考试查分,基于青果高校教务系统的一个自动python脚本代码
- MPU6050数据分析
热门文章
- 2022 分布式存储市场调研报告
- linux tomcat startup.sh,Tomcat 安装教程与启动-startup.sh
- 微信小游戏上传设置成体验版或者提交审核
- ups不间断电源工作原理及应用说明
- linux系统硬盘坏道,Linux下两种修复硬盘坏道方法
- 模式与数据库与表的关系
- pe下找不到ssd硬盘_WinPE无法识别NVMe SSD硬盘,如何重装系统?
- dpbs和pbs的区别_PBS与TBS区别
- WebRTC NACK
- 计算机主机组装图,自己如何组装电脑主机?diy电脑组装教程图解详细步骤+装机心得(5)...