一、redis概述
2.1、下载和解压redis,这里安装redis-3.2.1版本的,3.0以下版本不支持集群。
[root@localhost ~]# cd /usr/local[root@localhost local]# mkdir redis-cluster[root@localhost local]# cd redis-cluster/[root@localhost redis-cluster]# wget http://download.redis.io/releases/redis-3.2.1.tar.gz[root@localhost redis-cluster]# tar -zxvf redis-3.2.1.tar.gz
2.2、编译安装
[root@localhost redis-cluster]# cd redis-3.2.1[root@localhost redis-3.2.1]# make && make install
2.3、创建6个节点文件夹,每个文件夹我们就以每个端口号命名,方便管理
[root@localhost redis-3.2.1]# cd ..[root@localhost redis-cluster]# mkdir 6379 6380 6381 6382 6383 6384
2.4、这里不需要复制整个redis,只复制redis.conf到对应文件夹
[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6379/[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6380/[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6381/[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6382/[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6383/[root@localhost redis-cluster]# cp redis-3.2.1/redis.conf 6384/
2.5、修改每个redis.conf,这里我就拿6379的来做演示,其他的一样操作就好了
[root@localhost redis-cluster]# vi 6379/redis.conf
修改的内容和下面一样(注意:先不要设置密码,否则集群搭建会出错,需要设置密码的,待集群搭建完成再进行设置):
# 0.0.0.0 代表外网能访问bind 0.0.0.0 # 改为no,可以外界远程访问,redis 3.2 才追加的一个功能 protected-mode no # 开启端口 port 6379 tcp-backlog 511timeout 0tcp-keepalive 300# 设置yes,redis可以后台运行daemonize yes supervised no# pid路径pidfile /var/run/redis_6379.pid loglevel notice# 日志文件logfile "./6379/redis.log" databases 16save 900 1save 300 10save 60 10000stop-writes-on-bgsave-error yesrdbcompression yesrdbchecksum yesdbfilename dump.rdb# 方便管理dir ./6379/ slave-serve-stale-data yesslave-read-only yesrepl-diskless-sync norepl-diskless-sync-delay 5repl-disable-tcp-nodelay noslave-priority 100appendonly noappendfsync everysecno-appendfsync-on-rewrite noauto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mbaof-load-truncated yeslua-time-limit 5000# 开启集群,把注释#去掉cluster-enabled yes # 集群的配置,配置文件首次启动自动生成 cluster-config-file nodes-6379.conf # 请求超时,设置5秒够了 cluster-node-timeout 5000 slowlog-log-slower-than 10000slowlog-max-len 128latency-monitor-threshold 0notify-keyspace-events ""hash-max-ziplist-entries 512hash-max-ziplist-value 64list-max-ziplist-size -2list-compress-depth 0set-max-intset-entries 512zset-max-ziplist-entries 128zset-max-ziplist-value 64hll-sparse-max-bytes 3000activerehashing yesclient-output-buffer-limit normal 0 0 0client-output-buffer-limit slave 256mb 64mb 60client-output-buffer-limit pubsub 32mb 8mb 60hz 10aof-rewrite-incremental-fsync yes
[root@localhost redis-cluster]# redis-server 6379/redis.conf && redis-server 6380/redis.conf && redis-server 6381/redis.conf && redis-server 6382/redis.conf && redis-server 6383/redis.conf && redis-server 6384/redis.conf
可以查看是否开启成功
[root@localhost redis-cluster]# ps -ef | grep redis
和下图所示一样就成功开启
三、开启集群模式
3.1、安装redis集群工具和环境
[root@localhost redis-cluster]# yum install ruby && yum install -y rubygems
还有一个,用gem这个命令来安装redis接口,gem是ruby的一个工具包
[root@localhost redis-cluster]# gem install redis
执行gem install redis后可能报错如下:
ERROR: Error installing redis:
redis requires Ruby version >= 2.2.2.原因:
yum库中ruby的版本支持到 2.0.0,可gem 安装redis需要最低是2.2.2,自己编译的ruby源码,再执行还是报错…最后google结合几篇文章解决了:
采用rvm来更新ruby:解决方案(转):
(1).安装RVM:
[root@zhiwen redis-cluster]# gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3[root@zhiwen redis-cluster]# curl -L get.rvm.io | bash -s stable[root@zhiwen redis-cluster]# find / -name rvm -print
/usr/local/rvm/usr/local/rvm/scripts/rvm/usr/local/rvm/src/rvm/usr/local/rvm/src/rvm/scripts/rvm/usr/local/rvm/src/rvm/bin/rvm/usr/local/rvm/src/rvm/lib/rvm/usr/local/rvm/bin/rvm/usr/local/rvm/lib/rvm
[root@zhiwen redis-cluster]# source /usr/local/rvm/scripts/rvm
(2).查看rvm库中已知的ruby版本:
[root@zhiwen redis-cluster]# rvm list known# MRI Rubies[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]ruby-head# for forks use: rvm install ruby-head---url https://github.com/github/ruby.git --branch 2.2# JRubyjruby-1.6[.8]jruby-1.7[.27]jruby[-9.1.13.0]jruby-head# Rubiniusrbx-1[.4.3]rbx-2.3[.0]rbx-2.4[.1]rbx-2[.5.8]rbx-3[.84]rbx-head# Opalopal# Minimalistic ruby implementation - ISO 30170:2012mruby-1.0.0mruby-1.1.0mruby-1.2.0mruby-1[.3.0]mruby[-head]# Ruby Enterprise Editionree-1.8.6ree[-1.8.7][-2012.02]# Topaztopaz# MagLevmaglev[-head]maglev-1.0.0# Mac OS X Snow Leopard Or Newermacruby-0.10macruby-0.11macruby[-0.12]macruby-nightlymacruby-head# IronRubyironruby[-1.1.3]ironruby-head
(3).安装一个ruby版本:
[root@zhiwen redis-cluster]# rvm install 2.4.1
(4).使用一个ruby版本
[root@zhiwen redis-cluster]# rvm use 2.4.1Using /usr/local/rvm/gems/ruby-2.4.1
(5).设置默认版本
[root@zhiwen redis-cluster]# rvm use 2.4.1 --defaultUsing /usr/local/rvm/gems/ruby-2.4.1
(6).卸载一个已知版本
[root@zhiwen redis-cluster]# rvm remove 2.0.0ruby-2.0.0-p648 - #already goneUsing /usr/local/rvm/gems/ruby-2.4.1
(7).查看ruby版本:
[root@zhiwen redis-cluster]# ruby --versionruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
最后在运行命令(gem install redis)即可。
3.2、启动redis集群,服务器IP填自己的服务器地址
[root@localhost redis-cluster]# redis-3.2.1/src/redis-trib.rb create --replicas 1 服务器IP:6379 服务器IP:6380 服务器IP:6381 服务器IP:6382 服务器IP:6383 服务器IP:6384
安装过程中,会出现红色框内提示,不用管,直接yes就好了,然后安装ok。
如果:
注意:iptables 放开,如果有安全组,也要放开这两个端口
四、设置redis密码,注意因为要集群,所以各节点的密码要相同
这里以6379举例,别的节点一模一样,
[root@localhost redis-cluster]# vi 6379/redis.conf
在配置文件最后添加:
masterauth 你的密码requirepass 你的密码
然后重启redis:
[root@localhost redis-cluster]# ps -ef|grep redis[root@localhost redis-cluster]# kill -9 进程号1 && kill -9 进程号2 && kill -9 进程号3 && kill -9 进程号4 && kill -9 进程号5 && kill -9 进程号6[root@localhost redis-cluster]# redis-server 6379/redis.conf && redis-server 6380/redis.conf && redis-server 6381/redis.conf && redis-server 6382/redis.conf && redis-server 6383/redis.conf && redis-server 6384/redis.conf
四、关闭防火墙(如果防火墙关闭的请忽略)
我在这就忽略了, 具体自行百度linux对应你的系统版本关闭防火墙的方法。
五、测试是否搭建成功,使用RedisStudio图形界面工具分别连接6个节点,成功连接即可。