安装环境:
两台虚拟机都是Centos 7.0
IP分别为:192.168.149.132 192.168.149.133
Redis采用的版本是redis-3.2.4
集群是采用两台虚拟机模拟8个节点,一台机器4个节点,创建出4 master、4salve 环境。
1、首先在192.168.149.132上安装单机版
下载安装包:
wget http://download.redis.io/releases/redis-3.2.4.tar.gz
解压:
tar –xvf redis-3.2.4.tar.gz
进入安装目录进行安装,注意要使用有root权限的账户进行操作,因为在安装过程中需要操作许多系统文件路径,如果没有权限则会安装报错。
make && make install
其中有许多依赖包,如果缺就安装即可,一般不会缺。
至此单机redis安装完毕,接下来启动服务:
cd src
./redis-server
Ok服务启动成功
接下来我们小小测试一下。没问题!
一般redis我们经常做为消息服务器使用,如下:
当然redis作为消息服务器有更加复杂的应用,可以自己去摸索。
2、集群配置,在192.168.149.133上同样安装redis
拷贝文件:
redis-trib.rb是官方提供的一款集群工具,后面要用
创建redis节点:
在redis安装目录下创建 redis_cluster目录
在 redis_cluster 目录下,创建名为7010、7011、7012、7013的目录
并将 redis.conf 拷贝到这三个目录中,分别修改这三个redis.conf配置文件,修改内容如下:
port 7010 //端口7010 7011 7012 7013
bind 本机ip //默认ip为127.0.0.1 需要改为其他节点机器可访问的ip 否则创建集群时无法访问对应的端口,无法创建集群
daemonize yes //redis后台运行
pidfile /var/run/redis_7010.pid //pidfile文件对应
cluster-enabled yes //开启集群 把注释#去掉
cluster-config-file nodes_7010.conf //集群的配置 配置文件首次启动自动生成
cluster-node-timeout 15000 //请求超时 默认15秒,可自行设置
appendonly yes //aof日志开启 有需要就开启,它会每次写操作都记录一条日志
启动集群服务:
查看启动情况:
没有问题
Redis 官方提供了 redis-trib.rb 这个工具,就在解压目录的 src 目录中,之前已将它复制到 /usr/local/bin 目录中,可以直接在命令行中使用了。使用下面这个命令即可完成集群。
redis-trib.rb create --replicas 1 192.168.149.133:7010 192.168.149.133:7011 192.168.149.133:7012 192.168.149.133:7013 192.168.149.132:7014 192.168.149.132:7015 192.168.149.132:7016 192.168.149.132:7017
报错了,因为这个工具是用 ruby 实现的,所以需要安装 ruby。
安装ruby:
yum install ruby ruby-devel rubygems rpm-build
gem install redis
安装成功后执行之前的命令,又报错了:
redis集群不仅需要开通redis客户端连接的端口,而且需要开通集群总线端口
集群总线端口为redis客户端连接的端口 + 10000
修改防火墙配置将端口加入进去,注意两台虚拟机都需要:
cd /etc/sysconfig
vi iptables
保存后重启防火墙
ps:如果没有iptables-services服务的话,可以先安装:yum install iptables-services
好了,现在再次创建集群:
终于配置成功启动
ps:这里一不小心就有个巨坑错误如下:
提示某个节点不为空,让你去检查,其实这里是因为我们在上一次启动配置或者redis非正常停止的时候,有生成过一些.aof或者.rdb文件,只需要删除掉就ok。
网上有相关方法,如果碰到可以针对性的去找找。
接下来我们试试是否可以使用了。
使用192.168.149.133的7011节点输入数据,7010节点监听
中文居然被转译了,再来一次
经过测试我们的集群可以使用了啦!简单吧