最近项目即将上线,因为人手问题,各类研究运维相关知识,这两天刚弄完redis集群部署的问题,跟你们唠唠。html
*如下均是在Linux环境下执行,系统ubuntu16.04node
sudo wget http://download.redis.io/redis-stable.tar.gz
复制代码
sudo tar -zxvf redis-stable.tar.gz
复制代码
sudo apt-get install gcc
复制代码
cd redis-stable
make
make install PREFIX=安装目录
复制代码
cd 步骤4安装目录/bin
cp redis-stable目录/redis.conf ./
# 若是就是想起个简单的redis服务,到这里就结束了
针对redis cluster须要修改的配置(实际使用去掉注释):
bind IP地址 # 为了外网访问,原为127.0.0.1
port 6379 # 端口号
daemonize yes # 后台模式
# 若是要设置密码的话,masterauth和requirepass都要设置,不然主从切换时,会有受权问题
masterauth 密码
requirepass 密码(必须一致)
appendonly yes
cluster-enabled yes
cluster-config-file nodes.conf
cluster-node-timeout 15000
复制代码
若是想在一台机器上启多个服务,能够复制多个reids.conf,修改port,而且要修改日志文件名称
也能够粗暴的复制多个bin文件夹,只改port就好了
./redis-server redis.conf
复制代码
目前,redis集群解决方案有两个:python
这是Twitter推出的解决方案,简单的说就是上层加个代理负责分发,属于client端集群方案,目前大多数应用者都在采用的解决方案。git
会用到LVS、Twemproxy、Keepalived、Redis主从模式,感受太麻烦了,并且没有在线扩容节点能力,公司经济能力有限,无法一开始就预留出足够的节点,后来发现了官推的redis cluster方案,就放弃了Twemproxy。github
Redis3.0以后,官方推出的server端集群方案web
优势:redis
(1) 官方解决方案
(2) 能够在线水平扩展(Twemproxy的一大弊端就是不支持在线扩容节点)
(3) 客户端直连,系统瓶颈更少
(4) 无中心架构
(5) 支持数据分片
复制代码
根据需求,最终解决方案选择:redis cluster +主从模式ubuntu
下面介绍一下配置vim
sudo apt-get install ruby
sudo apt-get install rubygems
sudo gem install redis # ruby的redis客户端
复制代码
执行 gem environment 找到 INSTALLATION DIRECTORYruby
cd到上面路径+/gems/redis-xxx/lib/redis/
vim client.rb
password => "密码" #修改password为指定密码
复制代码
最开始redis不要设置密码,待集群起来以后,经过config命令挨个redis服务修改配置
configset masterauth 密码
config set requirepass 密码
config rewrite
复制代码
cd redis安装目录
cp redis-stable目录/src/redis-trib.rb ./
./redis-trib.rb create --replicas 1 192.168.1.222:6379 192.168.1.223:6379 192.168.1.224:6379 192.168.1.225:6379192.168.1.226:6379 192.168.1.227:6379 # replicas 1表示一从,本案例三主三从
复制代码
能够经过以下检查各节点状况:
./redis-trib.rb check 192.168.1.222:6379
复制代码
redis-cli自己提供monitor功能,且功能强大,不过monitor性能消耗很大,只应该短时间开启调试,不能做为长期性能监控解决方案
这里选用了redis-monitor,支持集群,python编写,有web端
sudo apt-get install python2.7 python2.7-dev
复制代码
sudo apt-get install build-essential libssl-dev libevent-dev libjpeg-devlibxml2-dev libxslt-dev
复制代码
sudo apt-get install python-pip
复制代码
git clone https://github.com/LittlePeng/redis-monitor.git
复制代码
cd redis-monitor
pip install -r requirements.txt
复制代码
cd redis-monitor/src
pythonredis_monitor_daemon.py # 信息收集
python redis_live_daemon.py # web,port:8888
访问:127.0.0.1:8888/index.html
复制代码