redis搭建
1、安装redis并设为开机启动
yum install gcc
cd /opt
wget https://download.redis.io/redis-stable.tar.gz
tar -xzvf redis-stable.tar.gz
cd redis-stable
第一种方式 安装 Redis 服务脚本 `install_server.sh`
./utils/install_server.sh
第二种方式
# 报错:zmalloc.h:50:31: 致命错误:jemalloc/jemalloc.h:没有那个文件或目录
# include <jemalloc/jemalloc.h>
make MALLOC=libc
# make install 会默认安装在 /usr/local/bin 文件夹下
# 指定安装目录
make PREFIX=/usr/local/bin/redis install
# 例子:
make MALLOC=libc install PREFIX=/usr/local/bin/redis
# 安装成功之后会生成几个二进制文件
redis-server:Redis 服务器
redis-cli:Redis 命令行客户端
redis-benchmark:Redis 性能测试工具
redis-check-aof:AOF 文件修复工具
redis-check-rdb:RDB 文件检查工具
# 从安装包根目录复制redis.conf
mkdir /etc/redis/ && cp ./redis.conf /etc/redis/
配置环境变量
vi /etc/profile
export REDIS_HOME=/usr/local/bin/redis
export PATH=$PATH:$REDIS_HOME/bin
source /etc/profile
开机启动

cp /opt/redis-stable/utils/redis_init_script /etc/init.d/redis
vim /etc/init.d/redis
# 保存
# 复制redis.conf 为6379.conf
cp /etc/redis/redis.conf /etc/redis/6379.conf
vim /etc/redis/6379.conf
# 把 daemonize on改为yes
daemonize yes
# 启动
/etc/init.d/redis start
# 添加redis服务
chkconfig --add redis
# 开机启动
chkconfig redis on 或 systemctl enable redis.service
# 检查服务
ps -ef | grep redis
2、部署多台Redis
cd /etc/redis
cp 6379.conf 6380.conf
# 修改如下参数配置
vim 6380.conf
port 6380
pidfile /var/run/redis_6380.pid
logfile /var/log/redis_6380.log
dir /var/lib/redis/6380
# 复制redis进程控制脚本 注:原安装包中的redis_init_script脚本
cp /etc/init.d/redis_6379 /etc/init.d/redis_6380
vim /etc/init.d/redis_6380
# 参考下图01
# 创建文件夹
mkdir /var/lib/redis/6380
# 添加redis_6380服务
chkconfig --add redis_6380
# 设置开机启动
chkconfig redis_6380 on
图01:

3、设置密码
方法1:编辑conf文件
vim /etc/redis/6379.conf

保存重启:
/etc/init.d/redis_6379 restart
方法2:
# 进入redis-cli之后执行:
config set requirepass 123456
# 连接
/usr/local/src/redis/bin/redis-cli -a 123456
或进入到 redis-cli 启动之后再连接

4、持久化设置
1.AOF持久化(以日志追加的形式写入日志文件appendonly.aof)
# 编辑.conf文件
vim /etc/redis/6379.conf
# 修改如下参数:
appendonly yes // 默认是no不开启
# appendfsync always // 同步写回,每次执行命令都会写回磁盘
appendfsync everysec // 每次执行完命令,先把日志写入到AOF内存缓冲区,每隔1s同步到磁盘
# appendfsync no // 日志写入到AOF内存缓冲区,不主动进行同步操作,默认30s一次
2.RDB持久化(把数据以快照的形式保存到磁盘中 文件dump.rdb)
# 编辑.conf文件
vim /etc/redis/6379.conf
# 修改如下配置
appendonly yes // 默认是no不开启
save 3600 1 300 100 60 10000 // 3600 秒内有1个key变更
// 300秒内有100个key变更
// 60秒内有一万个key变更
// save同步
// bgsave异步
5、主从配置
# 编辑master配置
vim /etc/redis/6379.conf
#bind 127.0.0.1 -::1
# 新增
bind 0.0.0.0
# 编辑slave配置
vim /etc/redis/6380.conf
#bind 127.0.0.1 -::1
# 新增
bind 0.0.0.0
# replicaof <masterip> <masterport>
replicaof 127.0.0.1 6379 # redis5.0.0开始废弃slaveof,新旧版本配置注意区别
# masterauth <master-password>
masterauth 123456
# 保存之后重启服务
/etc/init.d/redis_6379 start
/etc/init.d/redis_6380 start
# 连接客户端
/usr/local/src/redis/bin/redis-cli -a 123456 -c -h 127.0.0.1 -p 6379
/usr/local/src/redis/bin/redis-cli -a 123456 -c -h 127.0.0.1 -p 6380
# 客户端执行查看
info replication


master 写入

slave 查询

6、哨兵模式
mkdir -p /etc/redis/sentinel
cp /opt/redis-stable/sentinel.conf /etc/redis/sentinel/6379.conf
vim /etc/redis/sentinel/6379.conf
# 修改如下配置
daemonize yes
pidfile /var/run/redis-sentinel-6379.pid
logfile /var/log/redis-sentinel-6379.log
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 2
# sentinel down-after-milliseconds <master-name> <milliseconds>
# Default is 30 seconds.
sentinel down-after-milliseconds mymaster 30000
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster 123456
# Default is 3 minutes.
sentinel failover-timeout mymaster 180000
# 复制
cp /etc/redis/sentinel/6379.conf /etc/redis/sentinel/6380.conf
vim /etc/redis/sentinel/6380.conf
# 修改如下配置
port 26380
pidfile /var/run/redis-sentinel-6380.pid
logfile /var/log/redis-sentinel-6380.log
# sentinel monitor <master-name> <ip> <redis-port> <quorum>
sentinel monitor mymaster 127.0.0.1 6379 2
# sentinel down-after-milliseconds <master-name> <milliseconds>
# Default is 30 seconds.
sentinel down-after-milliseconds mymaster 30000
# sentinel auth-pass <master-name> <password>
sentinel auth-pass mymaster 123456
# Default is 3 minutes.
sentinel failover-timeout mymaster 180000
# 启动
/usr/local/src/redis/bin/redis-server /etc/redis/sentinel/6379.conf --sentinel
/usr/local/src/redis/bin/redis-server /etc/redis/sentinel/6380.conf --sentinel
# 查看日志
tail -fn 300 /var/log/redis-sentinel-6379.log
tail -fn 300 /var/log/redis-sentinel-6380.log
# 关掉主节点
/etc/init.d/redis_6379 stop
# 连接从节点客户端
/usr/local/src/redis/bin/redis-cli -a 123456 -c -h 127.0.0.1 -p 6380
# 查看主从信息
info replication
# 如图02,role已经从slave 变成了master, 连接的从库也变为0
# 重启6379服务,按正常原先的master会变成slave
# 图03
查看发现connected_slaves:0 ,原因是:之前做主从的时候,6379没有设置 masterauth
注:建议后期要用哨兵模式,设置主从的时候要先设置masterauth,确保后期高可用能正常使用
# masterauth <master-password>
masterauth 123456
图02:

图03:



被折叠的 条评论
为什么被折叠?



