redis集群搭建
自己记录下来,免得忘记了。
总的过程:
1、 下载redis包,安装redis。
2、 zlib安装 (参考:https://jingyan.baidu.com/article/02027811617b971bcd9ce541.html),zlib-devel 安装 (官网可以下载rpm ,安装命令如:rpm -ivh zlib-devel-1.2.7-17.el7.x86_64.rpm)
3、安装对应版本的ruby。
4、 安装对应版本的 rubygems 库。 (没有安装ssl的 还需要安装openssl-1.0.2n )
5、 安装对应版本的 redis-version.gem ,是ruby 和redis交互接口需要的。
自己安装的虚拟机是 centos 6.5 ,搭建 redis 集群时按照网上的一堆例子,搭建不成功。具体事例都是大同小异如下:
可参考以下文章:
https://segmentfault.com/a/1190000008448919
按照文章的安装执行到已下步骤:
$ yum -y install ruby ruby-devel rubygems rpm-build
一般来说,这一步是能正常完成的,执行下一步。
$ gem install redis
安装过程出错,一般都是要升级ruby版本。
升级Ruby的版本
安装rvm,我不知道这是个什么东西,但是感觉像是Ruby的一个包管理器。
# curl -L get.rvm.io | bash -s stable
一直都安装不上,百度之后要执行以下命令
# gpg2 --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
重新执行
# curl -L get.rvm.io | bash -s stable
安装成功!
接着,source环境,让rvm可用。
# source /usr/local/rvm/scripts/rvm
查看Ruby可用版本
# rvm list known
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
可以看到最新的版本是2.4.1,那么我们装最新的吧。
执行
# rvm install 2.4.1
一直安装不成功,应该是网络原因导致没有成功,需要FQ。我用的免费FQ软件,实在是不行,网络太差不能安装。
实在没有办法,我自己在ruby官网 http://www.ruby-lang.org/en/downloads/ 下载了ruby的安装包ruby-2.5.0.tar.gz
安装ruby
$ tar -xvzf ruby-2.5.0.tgz
$ cd ruby-2.5.0
现在,配置并编译源代码,如下所示:
$ ./configure
$ make
$ sudo make install
$ruby -v
ruby 2.5.0……
ruby 安装成功!
安装rubygems
下载网址 https://rubygems.org/pages/download/
下载了rubygems-2.7.6. tgz
1,tar -zxvf 解压该压缩包
2,进入解压目录,执行:ruby setup.rb
3,如果出现错误提示说:ERROR:RDoc documentation generator not installed: no such file to l
4,安装依赖包:yum install ruby-rdoc
5,再次执行ruby setup.rb即可完成安装
Rubygems 库安装成功
之后就是安装ruby 和redis接口交互工具
下载 redis-4.0.1.gem 最新版本,这里因为我用的 ruby和redis(下载官网https://redis.io/download)都是比较高的版本。
redis-4.0.1.gem 这个文件不太好找最后在一个博客中看到这个网址
(https://rubygems.global.ssl.fastly.net/gems/redis-3.2.2.gem) 访问会自动下载,最后(redis-3.2.2)是版本号修改为自己想要的版本即可。
最后执行
$ gem install redis-3.2.2.gem
要是权限不够就切换到root安装
至此全部需要的工具都安装成功
创建集群:
$ ./redis-trib.rb create --replicas 1 127.0.0.1:7501 127.0.0.1:7502 127.0.0.1:7503 127.0.0.1:7504 127.0.0.1:8501 127.0.0.1:8502 127.0.0.1:8503 127.0.0.1:8504
终于成功了。
测试:
redis-cli -h
192.168.1.8-c -p
7000
连上某个redis
192
.168.1.9:7004>
set name redis
192
.168.1.8:7000>
get name换到另一个
redis
redis-cli -h
192.168.1.8-c -p
7001
可以用 get name 或是 keys * 查看
最后一个tip:
虚拟机搭建 redis集群之后,关闭虚拟机,重新开启虚拟机 启动集群会报错 找到一片文章如下:
里面还有一些 redis集群的维护知识
http://blog.csdn.net/xiaojin21cen/article/details/70445545 或是
http://cache.baiducontent.com/c?m=9d78d513d99401ef4fede53f534b9171192582743ca68b5468d4e21bcd240c12112df4bb5672574598d27c1616af384beb807625615861a09ab89f4baeac935838895423716cd71c4d8c4af39d5124b177d01ab4ef0da0faae3dc9e89491c85520d74e5524dda59c5a77458b39ac033194face0e08154be9b0683ea3597478c87f5de507bfbb6330509ca08a1a1f9874917c1495a933b73914b2&p=81759a45d6c35dfc57efc522584d81&newp=8b2a9717899507b504bd9b7e0d1688231610db2151d7d4126b82c825d7331b001c3bbfb42325100fd8c6786700a84b5eecf7357037012ba3dda5c91d9fb4c57479da78623606da&user=baidu&fm=sc&query=ERR+Slot+0+is+already+busy+%28Redis%3A%3ACommandError%29&qid=9f33d0460003259c&p1=1