三台服务器,搭建开发,测试,镜像三套redis集群,通过端口区分
服务器IP:
master 192.168.11.152 slave 192.168.11.153 slave 192.168.11.154
复制
1,配置hosts
vi /etc/hosts 192.168.11.152 redis1 192.168.11.153 redis2 192.168.11.154 redis3
复制
2,安装rpm包
yum -y install gcc
复制
3,redis安装
三个节点都安装
安装文件: redis-5.0.8.tar.gz 解压:tar zxvf redis-5.0.8.tar.gz 重命名文件夹:mv redis-5.0.8 redis cd redis make MALLOC=libc
复制
4,修改配置文件
通不过不同的端口区别不同的环境
开发:7001
测试:8001
镜像:9001
分别创建三个redis配置文件:
redis7001.conf
redis7001.conf
redis7001.conf
配置文件内容:
开发master节点: bind 0.0.0.0 --允许所有IP连接 protected-mode yes port 7001 --端口号 timeout 300 --连接超时 tcp-keepalive 300 daemonize yes --后台运行 supervised no pidfile "/var/run/redis_7001.pid" --指定pid文件,需要修改run目录增加写权限 loglevel notice --日志等级,默认notice logfile "/home/redis/redis/redis_7001.log" --指定log文件 dir "/home/redis/redis" --指定工作目录 replica-serve-stale-data yes replica-read-only yes --指定slave只读 requirepass "redis" --指定登录密码 masterauth "redis" --指定master节点登录密码 appendonly no
复制
测试、镜像修改相关端口即可。
slave节点:
同master节点参数,新增一个参数:
replicaof 192.168.11.152 7001 --指定master的ip,端口信息
复制
测试、镜像修改相关端口即可。
5,启动redis
master(152): src/redis-server redis7001.conf src/redis-server redis8001.conf src/redis-server redis9001.conf slave(153,154): src/redis-server redis7001.conf src/redis-server redis8001.conf src/redis-server redis9001.conf
复制
6,检查集群状态
[redis@redis2 redis]$ src/redis-cli -h 192.168.11.152 -p 7001 -a redis info replication Warning: Using a password with '-a' or '-u' option on the command line interface may not be safe. # Replication role:master connected_slaves:2 slave0:ip=192.168.11.153,port=7001,state=online,offset=479419,lag=0 slave1:ip=192.168.11.154,port=7001,state=online,offset=479419,lag=0 master_replid:bb8395669255fad559847586ec4ea2b6858dcbc3 master_replid2:0000000000000000000000000000000000000000 master_repl_offset:479419 second_repl_offset:-1 repl_backlog_active:1 repl_backlog_size:1048576 repl_backlog_first_byte_offset:1 repl_backlog_histlen:479419
复制
7,配置哨兵sentinel
配置文件:sentinel.conf daemonize yes --后台运行 bind 192.168.11.165 --本机IP port 26379 --sentinel端口号 pidfile "/var/run/redis-sentinel.pid" --指定pid文件 logfile "/home/redis/redis/sentinel.log" --指定log文件 dir "/home/redis/redis" --指定工作目录 sentinel deny-scripts-reconfig yes sentinel monitor devmaster 192.168.11.152 7001 2 sentinel monitor testmaster 192.168.11.152 8001 2 sentinel monitor mirrormaster 192.168.11.152 9001 2 sentinel down-after-milliseconds devmaster 10000 sentinel down-after-milliseconds testmaster 10000 sentinel down-after-milliseconds mirrormaster 10000 sentinel failover-timeout devmaster 15000 sentinel failover-timeout testmaster 15000 sentinel failover-timeout mirrormaster 15000 sentinel auth-pass devmaster redis sentinel auth-pass testmaster redis sentinel auth-pass mirrormaster redis
复制
三个节点都配置,bind参数修改为本机IP即可。
8,启动sentinel(152,153,154)
src/redis-sentinel sentinel.conf
复制
9,登录任意节点查看sentinel状态
[redis@redis2 redis]$ src/redis-cli -h 192.168.11.153 -p 26379 info sentinel # Sentinel sentinel_masters:3 sentinel_tilt:0 sentinel_running_scripts:0 sentinel_scripts_queue_length:0 sentinel_simulate_failure_flags:0 master0:name=testmaster,status=ok,address=192.168.11.152:8001,slaves=2,sentinels=3 master1:name=mirrormaster,status=ok,address=192.168.11.152:9001,slaves=2,sentinels=3 master2:name=devmaster,status=ok,address=192.168.11.152:7001,slaves=2,sentinels=3
复制
集群配置完成。
附:
配置redis以服务模式启动:
cp /home/redis/redis/utils/redis_init_script /etc/init.d/redis vi /etc/init.d/redis #!/bin/sh # # Simple Redis init.d script conceived to work on Linux systems # as it does use of the /proc filesystem. ### BEGIN INIT INFO # Provides: redis_6379 # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: Redis data structure server # Description: Redis data structure server. See https://redis.io ### END INIT INFO REDISPORT=6379 EXEC=/home/redis/redis/bin/redis-server CLIEXEC=/home/redis/redis/bin/redis-cli PIDFILE=/var/run/redis_${REDISPORT}.pid ##需要配置run目录权限 CONF="/home/redis/redis/redis.conf" case "$1" in start) if [ -f $PIDFILE ] then echo "$PIDFILE exists, process is already running or crashed" else echo "Starting Redis server..." $EXEC $CONF fi ;; stop) if [ ! -f $PIDFILE ] then echo "$PIDFILE does not exist, process is not running" else PID=$(cat $PIDFILE) echo "Stopping ..." $CLIEXEC -p $REDISPORT -a redis shutdown ##如果启用了密码验证则需要-a指定密码,否则一直Waiting for Redis to shutdown ... while [ -x /proc/${PID} ] do echo "Waiting for Redis to shutdown ..." sleep 1 done echo "Redis stopped" fi ;; *) echo "Please use start or stop as first argument" ;; esac
复制
配置完成后则可用 service redis start/stop 启停
最后修改时间:2020-10-28 09:46:48
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
👍
1年前

评论
相关阅读
深入理解分布式锁:原理、应用与挑战
京东云开发者
40次阅读
2025-03-11 15:50:54
缓存监控治理在游戏业务的实践和探索
vivo互联网技术
35次阅读
2025-03-20 09:51:10
如何使用 RisingWave、Kafka 和 Redis 构建实时推荐引擎
RisingWave中文开源社区
35次阅读
2025-03-10 10:30:31
Redis 集群主备切换原因分析
wzf0072
30次阅读
2025-03-20 17:51:42
Redis Cluster集群模式:构建大规模高性能分布式存储系统
老王两点中
28次阅读
2025-03-17 09:00:28
Redis 高可用方案
天翼云开发者社区
23次阅读
2025-03-24 17:09:54
拼多多二面:高并发场景扣减商品库存如何防止超卖?
码哥跳动
23次阅读
2025-03-11 08:36:28
高并发场景下的库存管理,理论与实战能否兼得?
京东云开发者
13次阅读
2025-03-24 16:54:56
如何使用 Redis完成 PV,UV 统计?
猿java
12次阅读
2025-03-04 08:02:34
Redis 集群使用(2)
巴韭特锁螺丝
9次阅读
2025-03-03 00:00:47