redis3.0搭建分布式集群
redis高版本使用ruby实现了集群,所以需要ruby环境,安装ruby环境和redis的gem接口后,就可以使用redis的redis-trib.rb脚本创建集群。
先列一下大的步骤。
1.修改配置文件,启动多个redis实例。
2.安装ruby、rubygems、redis ruby接口。
安装gem 需要ruby的版本在 1.8.7 以上,默认的centos5 上都是1.8.5 版本,所以首先你的升级你的ruby
3.gem 安装redis ruby 接口
4.redis-trib.rb脚本创建集群
——————————————————————————————————————————————
本人使用两台桥接的虚拟机进行了分布式集群的搭建,系统为centos5。
具体操作过程:
1.修改配置文件,启动多个redis实例。
下载redis3.0以上版本
tar zxf 解压
make&&make install 安装
创建单独目录,我是mkdir /usr/local/cluster ,再在其下创建目录 7000、7001、7002、7003
将redis.conf分别拷贝到这几个目录下面,并分别修改redis.conf 中的端口号port和目录名一致。
daemonize修改为yes后台启动,daemonize yes
启动4个实例
cd /usr/local/cluster
cd 7000
redis-server redis.conf
cd ../7001
redis-server redis.conf
如上把7002 7003也启动起来
然后在另一台虚拟机下创建 9000 9001 两个目录也按上面的redis-server redis.conf方法分别启动。
ps -ef|grep redis 看下是否都启动起来了
[root@localhost ~]# ps -ef|grep redis
root 10957 1 0 00:15 ? 00:00:01 redis-server *:7000 [cluster]
root 10961 1 0 00:15 ? 00:00:01 redis-server *:7001 [cluster]
root 10965 1 0 00:15 ? 00:00:01 redis-server *:7002 [cluster]
root 10982 1 0 00:15 ? 00:00:01 redis-server *:7003 [cluster]
2.安装ruby、rubygems、redis ruby接口。
yum install ruby
yum install rubygems
gem install redis
理想情况下上面三行就搞定了,但是我的ruby版本太低,需要升级ruby。
安装gem 需要ruby的版本在 1.8.7 以上,默认的centos5 上都是1.8.5 版本:
所以需要升级zlib,升级ruby
先升级zlib
yum install -y gcc zlib zlib-devel
yum install ruby
查看下ruby的版本
ruby -v
rpm -ivh http://yum.puppetlabs.com/el/5/products/x86_64/puppetlabs-release-5-6.noarch.rpm
yum install ruby ruby-devel rubygems rpm-build
rpm -ivh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
vi /etc/yum.repos.d/epel.repo 修改 enabled=1
yum install rubygems
3.gem 安装redis ruby 接口,我是先下载下来放到本地安装的。
wget https://rubygems.global.ssl.fastly.net/gems/redis-3.2.1.gem
sudo gem install -l ./redis-3.2.1.gem
4.redis-trib.rb脚本创建集群
cd /usr/local/redis3.0.5/
src/redis-trib.rb create --replicas 1 192.168.129.103:7000 192.168.129.103:7001 192.168.129.103:7002 192.168.129.103:7003 192.168.129.107:9000 192.168.129.107:9001
[root@localhost src]# ./redis-trib.rb create --replicas 1 192.168.129.103:7000 192.168.129.103:7001 192.168.129.103:7002 192.168.129.103:7003 192.168.129.107:9000 192.168.129.107:9001
>>> Creating cluster
Connecting to node 192.168.129.103:7000: OK
Connecting to node 192.168.129.103:7001: OK
Connecting to node 192.168.129.103:7002: OK
Connecting to node 192.168.129.103:7003: OK
Connecting to node 192.168.129.107:9000: OK
Connecting to node 192.168.129.107:9001: OK
>>> Performing hash slots allocation on 6 nodes...
集群创建完成,check一下看看:
[root@localhost src]# ./redis-trib.rb check 192.168.129.103:7000
Connecting to node 192.168.129.103:7000: OK
Connecting to node 192.168.129.103:7003: OK
Connecting to node 192.168.129.103:7001: OK
Connecting to node 192.168.129.107:9000: OK
Connecting to node 192.168.129.103:7002: OK
Connecting to node 192.168.129.107:9001: OK
>>> Performing Cluster Check (using node 192.168.129.103:7000)
M: 5f0adb50d0dd1aa69d34ec66b09413d984d124a1 192.168.129.103:7000
slots:5461-10922 (5462 slots) master
1 additional replica(s)
S: 4326d921c90559c9b26d84c19b151b8be43ee711 192.168.129.103:7003
slots: (0 slots) slave
replicates 25e7505b6647bc56781a6f8cf9addcae196d000c
S: b17b58c85c2a70ab781f35edc900d3031c7623b1 192.168.129.103:7001
slots: (0 slots) slave
replicates cc319d119402df317df41bc60b38cd8bb80e78bf
M: cc319d119402df317df41bc60b38cd8bb80e78bf 192.168.129.107:9000
slots:0-5460 (5461 slots) master
1 additional replica(s)
S: 966450aef1072b222b876c046f9a78ab7837fcd8 192.168.129.103:7002
slots: (0 slots) slave
replicates 5f0adb50d0dd1aa69d34ec66b09413d984d124a1
M: 25e7505b6647bc56781a6f8cf9addcae196d000c 192.168.129.107:9001
slots:10923-16383 (5461 slots) master
1 additional replica(s)
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
[root@localhost src]#
没问题,再客户端连接上去操作下,连接集群需要加-c参数
[root@localhost src]# redis-cli -c -p 7000
127.0.0.1:7000> set key v
-> Redirected to slot [12539] located at 192.168.129.107:9001
OK
192.168.129.107:9001> set key5 v5
-> Redirected to slot [9057] located at 192.168.129.103:7000
OK
192.168.129.103:7000>
如果想修改集群,可以使用add-node,迁移数据槽使用reshard,暂不详细描述了。
参考资料:
1.百度文库里的《redis3.0.2 分布式集群安装详细步骤》
2.centos 安装 redis3.0.0 集群
http://blog.csdn.net/lifeiaidajia/article/details/45370377
3.ruby升级不堪回首的往事
http://www.tuicool.com/articles/yauaM3
4.安装 ruby gems
http://storysky.blog.51cto.com/628458/1155353/
5.https://redis.io/topics/cluster-tutorial
_________________
可能遇到的问题
- gcc未安装
- 把网络搞定了,然后 在终端里yum install gcc*就自动安装了
- 下载离线安装文件进行安装
- 如果在内网则可以将安装好的系统做成镜像,然后离线yum
- 默认编译器不是gcc
- 修改默认编译器为gcc
- 查看默认编译器
- echo $CC
- zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory
- 安装失败的残留文件
- make distclean。清理一下,然后再make。
- 异常
- zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
- make MALLOC=libc
- server.c:5170:31: error: ‘struct redisServer’
- 安装gcc套装
- yum install cpp
- yum install binutils
- yum install glibc
- yum install glibc-kernheaders
- yum install glibc-common
- yum install glibc-devel
- yum install gcc
- yum install make
- 升级gcc
- yum -y install centos-release-scl
- yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
- scl enable devtoolset-9 bash
- 安装gcc套装
- zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
redis3.0搭建分布式集群相关推荐
- redis3.0.2 分布式集群安装详细步骤
redis3.0.2 分布式集群安装详细步骤 --(centos5.8 X64系统) 版本历史 时间 版本 说明 编写者 2015-06-5 1.0 redis3.0.2 分布式集群安装详细步骤 cs ...
- Zookeeper3.4.11+Hadoop2.7.6+Hbase2.0.0搭建分布式集群
2019独角兽企业重金招聘Python工程师标准>>> 有段时间没更新博客了,趁着最近有点时间,来完成之前关于集群部署方面的知识.今天主要讲一讲Zookeeper+Hadoop+Hb ...
- Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境
Hadoop2.7.3+HBase1.2.5+ZooKeeper3.4.6搭建分布式集群环境 一.环境说明 个人理解: zookeeper可以独立搭建集群,hbase本身不能独立搭建集群需要和hado ...
- 使用VirtualBox搭建分布式集群环境记录
针对集群环境,工作中基本上都是直接申请真实的物理机,或者干脆让运维给一套多机.自己之前个人研究的时候也是使用之前从二手市场淘来的多台物理机组成的分布式集群,但是最近一不小心把其中两台搞坏了,加之确实比 ...
- VMware搭建分布式集群基础环境
VMware搭建分布式集群基础环境 1. 前言 在日常学习.工作当中,我们经常需要用到分布式集群环境,如zookeeper集群.redis集群.大数据集群等,而通常并没有那么多的物理机器可以使用,因此 ...
- 【干货】Dask快速搭建分布式集群(大数据0基础可以理解,并使用!)
非常开心,解决了很久都没有解决的问题 使用的语言: Python3.5 分布式机器: windows7 注意到,其实,通过这工具搭建分布式不需要管使用的电脑是什么系统. 分布式使用流程 Created ...
- centos8搭建分布式集群
目录 1.1 前言 2.1 环境配置清单 2.2 CentOS8服务器配置静态ip 2.2.1 配置个人电脑的网络设置 2.2.2 配置VMware 2.2.3 配置服务器[电脑ip变更,则需重新配置 ...
- redis7.0.5分布式集群
文章目录 1.redis分布式系统数据分区算法 1.1数据顺序分区算法 1.2取模分区算法 1.3一致性hash分区算法 1.4虚拟槽分区算法 2.redis分布式系统搭建 2.1redis集群写入数 ...
- hadoop-2.4.0完全分布式集群搭建
2019独角兽企业重金招聘Python工程师标准>>> 1.配置hosts 各linux版本hosts文件位置可能不同,redhat是在 /etc/hosts,编辑之: 172.17 ...
最新文章
- 爬虫时出现 IndexError: list index out of range 的原因
- 解决 C# GetPixel 和 SetPixel 效率问题(转)
- angular新版 父组件修改子组件某个div样式
- 【Python 爬虫】 1、爬虫基础概念
- python绝对导入_Python中的绝对导入和相对导入
- 宏晶STC单片机使用STC-ISP串口烧录失败的原因与解决方法汇总
- java mvc接收json_详解springmvc 接收json对象的两种方式
- P2906 [USACO08OPEN]牛的街区Cow Neighborhoods
- win10分辨率设置_雷电模拟器如何设置分辨率
- 注册查看隐私协议 --- 滚动条是否滚动到底
- 庄辰超的势能,梁建章的心力
- 用oracle做九九乘法表,Oracle三种循环例题:打印九九乘法表
- DevOps八荣八耻了解下,哈哈~
- 【源码】广义逻辑分布(GLO)库
- 声音以模拟信号的形式存储在计算机中,08计算机1-2班《计算机基础》自学资料(5)...
- 李国杰披露AMD技术转让 只能看不能吃(全文版)
- 东芝笔记本出现w ndows,夏日白色清新范 13.3英寸东芝L830评测
- 定制自己的报表!7款实用开源报表工具
- 我的世界神奇宝贝怎么制作服务器,我的世界神奇宝贝服务器如何调精灵刷新率...
- 丽思·卡尔顿:是如何创造出忠诚顾客人均120万美元的终身消费的?
热门文章
- 深度召回算法在字节跳动推荐系统的应用实践
- 微信团队的深度学习框架deepx_core开源啦
- 深度总结 | 多任务学习方法在推荐中的演变
- 比特币的密钥、地址、钱包
- chartxy 柱状图_关于Chart柱状图的使用,有问题
- 零基础轻松学python pdf 小码哥_零基础轻松学Python
- 成像反了_宋国荣, 窦致夏:快速超声 C 扫描成像中的信号频域分析法及其应用...
- 吴恩达机器学习总结二:单变量线性回归
- Linux入门(2)_给初学者的建议
- linux下使用过的命令总结(未整理完)