编译安装
1. 下载
1 2 3
| wget https://download.redis.io/releases/redis-6.2.7.tar.gz tar -zvxf redis-6.2.7.tar.gz yum install gcc
|
2. 编译安装
1
| make && make install PREFIX=/opt/redis
|
3. 启动
1
| mkdir /opt/redis/conf && cp redis.conf /opt/redis/conf && cd /opt/redis && ./bin/redis-server ./conf/redis.conf
|
4. 主从模式
主节点
1 2 3 4 5 6 7 8
| bind 0.0.0.0 # 允许所有主机联机 port 6379 # 工作端口 protected-mode no # 关闭保护模式 daemonize yes # 开启守护进程 logfile /opt/software/redis/logs/6379.log # 指定日志文件目录 dir /opt/software/redis/data/6379 # 指定本地数据存放位置 appendonly yes # 开启AOF持久化功能 requirepass ifan@2022 # 设置 redis 连接密码
|
从节点
1 2 3 4 5 6
| # 在上面配置的基础上添加 port 6380 # 工作端口 logfile /opt/software/redis/logs/6380.log # 指定日志文件目录 dir /opt/software/redis/data/6380 # 指定本地数据存放位置 masterauth ifan@2022 # 设置slave 服务连接 master 的密码 replicaof 127.0.0.1 6379 # 指定要同步的Master节点IP和端口
|
5. 哨兵模式
主从节点不用关掉,哨兵模式只是一个监控和故障转移的服务
1 2 3 4 5 6 7 8 9 10 11 12
| pidfile "/opt/redis/logs/sentinel/sentinel.pid" protected-mode no port 26379 daemonize yes logfile "/opt/redis/logs/sentinel/sentinel.log" dir "/opt/redis/data/sentinel/26379" sentinel monitor mymaster 127.0.0.1 6380 3 sentinel auth-pass mymaster ifan@2022 sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000 sentinel deny-scripts-reconfig yes
|
6. 集群模式
1 2 3 4 5 6
| protected-mode no # 关闭保护模式 port 7000 # 每个实例都要修改,redis监听端口, daemonize yes # 后台模式 cluster-enabled yes # 开启群集功能 cluster-config-file nodes-7000.conf # 群集名称文件设置,每个实例都要修改 cluster-node-timeout 15000 # 集群超时时间设置
|
1 2
| # 修改配置文件监听的端口后,启动每个实例 redis-server redis.conf
|
1 2
| # 创建节点,cluster-replicas是从节点的个数,每个主节点,配置一个从节点 redis-cli --cluster create 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 --cluster-replicas 1
|
后记
总体来说,主从复制模式是只是防止单节点挂掉之后,整个缓存系统无法使用的情况(虽然从节点只能读,但是也比之前的单节点方案好了很多),而且如果系统只有读的需求的话,可以分散主节点的压力;哨兵模式是对之前主从模式的增强,可以自动化的切换故障节点。集群模式是主从模式的另一种横向扩充,实现了容量的增大,顺便集成了哨兵模式。