Redis哨兵和集群区别
参考:【集群】Redis的哨兵模式和集群模式 - 是谁扭曲了时空 - 博客园
环境说明
服务器:172.18.0.35
操作系统:CentOS 7.4
Redis版本:redis-5.0.5
综合说明:在一台服务器上使用不同的端口部署六个Redis,三主三从,对应的六个端口分别是:9001、9002、9003、9004、9005、9006
安装Redis
创建基础目录
所以数据目录和日志目录均使用端口做划分,基础目录为/app/local_redis
[root@Test-35 src]# mkdir /app/local_redis/9001
[root@Test-35 src]# mkdir /app/local_redis/9002
[root@Test-35 src]# mkdir /app/local_redis/9003
[root@Test-35 src]# mkdir /app/local_redis/9004
[root@Test-35 src]# mkdir /app/local_redis/9005
[root@Test-35 src]# mkdir /app/local_redis/9006
编译安装Redis
[root@Test-35 src]# tar xf redis-5.0.5.tar.gz
[root@Test-35 src]# cd redis-5.0.5
[root@Test-35 redis-5.0.5]# make && make install
配置Redis
拷贝对应的执行文件到指定目录
[root@Test-35 redis-5.0.5]# mkdir /app/local_redis/bin
[root@Test-35 redis-5.0.5]# cd src/
[root@Test-35 src]# cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-cli redis-server redis-trib.rb /app/local_redis/bin
修改Redis配置文件
[root@Test-35 redis-5.0.5]# mkdir /app/local_redis/conf
[root@Test-35 redis-5.0.5]# cp redis.conf /app/local_redis/conf/redis_9001.conf
[root@Test-35 redis-5.0.5]# vim /app/local_redis/conf/redis_9001.conf
#修改内容:
bind 0.0.0.0
port 9001
pidfile "/var/run/redis_9001.pid"
logfile "/app/local_redis/9001/access.log"
dir "/app/local_redis/9001"
appendonly yes
cluster-enabled yes
cluster-config-file "nodes-9001.conf"
cluster-node-timeout 15000
拷贝redis_9001.conf分别到对应文件,并修改内容
[root@Test-35 redis-5.0.5]# cp /app/local_redis/conf/redis_9001.conf /app/local_redis/conf/redis_9002.conf
[root@Test-35 redis-5.0.5]# cp /app/local_redis/conf/redis_9001.conf /app/local_redis/conf/redis_9003.conf
[root@Test-35 redis-5.0.5]# cp /app/local_redis/conf/redis_9001.conf /app/local_redis/conf/redis_9004.conf
[root@Test-35 redis-5.0.5]# cp /app/local_redis/conf/redis_9001.conf /app/local_redis/conf/redis_9005.conf
[root@Test-35 redis-5.0.5]# cp /app/local_redis/conf/redis_9001.conf /app/local_redis/conf/redis_9006.conf
#修改对应的9001为其他对应配置
[root@Test-35 redis-5.0.5]# sed -i 's/9001/9002/g' /app/local_redis/conf/redis_9002.conf
[root@Test-35 redis-5.0.5]# sed -i 's/9001/9003/g' /app/local_redis/conf/redis_9003.conf
[root@Test-35 redis-5.0.5]# sed -i 's/9001/9004/g' /app/local_redis/conf/redis_9004.conf
[root@Test-35 redis-5.0.5]# sed -i 's/9001/9005/g' /app/local_redis/conf/redis_9005.conf
[root@Test-35 redis-5.0.5]# sed -i 's/9001/9006/g' /app/local_redis/conf/redis_9006.conf
安装ruby
yum remove -y ruby
yum install -y rubygems ruby
配置Redis集群
[root@Test-35 local_redis]# /app/local_redis/bin/redis-cli --cluster create 172.18.0.35:9001 172.18.0.35:9002 172.18.0.35:9003 172.18.0.35:9004 172.18.0.35:9005 172.18.0.35:9006 --cluster-replicas 1
集群认证1
配置Redis集群认证,也可以最开就直接在redis.conf配置好requirepass认证参数【所有密码设置一直】,然后在初始化集群时候,使用-a参数进行设置。
redis.conf配置文件配置认证
vim /app/local_redis/conf/redis_9001.conf
#修改如下内容
requirepass test123
初始化调整参数
[root@Test-35 local_redis]# /app/local_redis/bin/redis-cli --cluster create 172.18.0.35:9001 172.18.0.35:9002 172.18.0.35:9003 172.18.0.35:9004 172.18.0.35:9005 172.18.0.35:9006 --cluster-replicas 1 -a test123
测试集群
[root@Test-35 local_redis]# /app/local_redis/bin/redis-cli -h 172.18.0.35 -p 9001 -c
172.18.0.35:9001> keys *
(empty list or set)
172.18.0.35:9001> set aa cc
OK
配置认证
Redis如果没有配置认证、防火墙策略等等安全策略,很容易被入侵。下面介绍怎么配置在集群下配置集群,安装下列配置认证后,认证信息会被写入到Redis的配置文件中。
[root@Test-35 local_redis]# /app/local_redis/bin/redis-cli -h 172.18.0.35 -p 9001 -c
172.18.0.35:9001> config set masterauth test123
OK
172.18.0.35:9001> config set requirepass test123
OK
172.18.0.35:9001> exit
[root@Test-35 local_redis]# /app/local_redis/bin/redis-cli -h 172.18.0.35 -p 9001 -c
172.18.0.35:9001> keys *
(error) NOAUTH Authentication required.
172.18.0.35:9001> auth test123
OK
172.18.0.35:9001> config rewrite
OK
172.18.0.35:9001> exit
集群说明参考:Redis-Cluster集群 - 简书