Linux环境安装redis集群
[TOC]
安装环境
系统:CentOS release 6.5 (Final)
环境要求:
gcc;
Ruby:
Rubygems:
redis-3.X (需要3.0以上版本支持集群)
注意:我测试时连接外网了,如果没有连接外网就需要离线下载所需的依赖,然后上传安装。
安装单个redis
注意:这里需要gcc和ruby的环境。安装前需要检查系统是否有gcc和ruby的环境:
-
gcc环境
gcc用来编译redis的源码,使用gcc -v 查看,
-
ruby 环境
ruby 用来执行集群的命名,使用ruby -v,gem -v 查看:
安装好上述两个依赖后,现在安装redis.
- 创建存放安装包的文件夹,makdir redis。然后cd到该目录,上传下载好的tar.gz文件。然后,执行解压命令
tar zxvf redis-3.2.12.tar.gz
-
cd到redis的解压目录,然后执行make && make install 命令安装:
$ cd /home/redis/redis-3.2.12 $ make && make install //make 这里如果不指定PREFIX,默认将安装在/usr/local/bin下,保持默认就好
安装成功后,出现如下图:
也可以在/usr/local/bin下查看redis的安装文件。
-
cd到解压目录,指定配置文件启动。
redis-server redis.conf
注意,这里启动的redis不是后台启动,退出会话后redis会自动退出。通常单机redis我们需要修改如下配置:
daemonize yes //默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程
requirepass foobared //设置客户端连接密码
port 6379 //指定端口
bind 127.0.0.1 //绑定的主机地址,如果需要远程连接,则需修改该参数
protected-mode yes // 保护模式,如果需要远程连接,则需要修改该参数
安装Redis集群
安装集群至少需要三个主节点,三个对应的从节点。防止某个节点挂掉,其他两个节点可以推举其对应得从节点为主节点,一定程度的容错。
这里在同一台机器上安装,生产环境至少需要三台机器安装。创建6个文件分别存放配置信息,文件夹名以端口命名。比如7001-7006。
- 使用mkdir命令批量创建文件夹。
- 然后我们需要在安装目录复制redis-cli、redis-server、redis.conf 三个配置文件到每个文件夹,用来启动单个redis. 如果安装时没有指定目录,则默认在usr/local/bin 目录下复制redis-cli、redis-server文件,redis.conf在解压的目录可以复制,也可以自己创建。
在复制redis.conf配置文件
- 修改每个redis.conf文件
bind 0.0.0.0 //0.0.0.0表示允许所有连接
protected-mode no //保护模式,yes表示不允许远程连接
port 7001 //端口,这里每个配置文件不同
daemonize yes //以后台方式启动
appendonly yes //redis 将每一次写操作请求都追加到appendonly.aof 文件中redis重新启动时,会从 该文件恢复出之前的状态。
cluster-enabled yes //启用集群
cluster-node-timeout 5000 //节点超时时间
- 在每个文件下执行redis-server redis.conf 命令。这个可以创建脚本执行比较快。
vim startall.sh 就会打开vim编辑器,创建一个空的文本
这里我每个分别启动,脚本执行不起作用(心累)
-
此时,我们进入解压的目录src下,复制redis-trib.rb 文件到redis目录;
-
在redis目录执行命令:
注意:这里--replicas 1 表示每个主数据库拥有从数据库个数为1。master节点不能少于3个。
如果需要远程访问,这里的命令中127.0.0.1 需要换成服务器的ip地址。否则不能远程访问。
./redis-trib.rb create --replicas 1 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 127.0.0.1:7006
各种报错解决
执行./redis-trib.rb create --replicas 命令后报错:
然后,ruby-v 和gem -v 查看ruby环境发现都已经安装了。其实这个错误是缺少redis对ruby的接口,我们需要下载redis的gem包;
执行命令:gem install redis 有报错了。
ruby版本太低了。。。。
执行如下命令安装rvm,用他来安装ruby更新的版本:
//具体RVM安装命令地址:http://rvm.io/
[root@linux ~]# gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
[root@linux ~]# curl -sSL https://get.rvm.io | bash -s stable
[root@linux ~]# find / -name rvm -print
[root@linux ~]# source /usr/local/rvm/scripts/rvm
安装好rvm,就可以看到很多rvm的文件。
设置默认的ruby版本
在执行gem install redis,就会安装成功了。
gem install redis
接下来执行命令安装集群:
./redis-trib.rb create --replicas 1 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 127.0.0.1:7006
输入yes,回车。
终于成功了,显示显示的主从节点信息。
集群测试
切换到任意的节点目录下,连接添加数据测试:
redis-cli -p 7001 -c
这里就可以看到set name 集群已经hash了key分布在哪个槽上,自动跳转到对应的节点上。