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:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

之殉烂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值