Redis笔记
REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案
https://xie.infoq.cn/article/5e448966877a1f50905970cee
redis安装
- 安装虚拟机
建议安装1804版本的centos7的minimal而不是2009版的
更新eth0中的onboot为yes然后wq即可配置网络
# 查看防火墙状态
systemctl status network.service
# 临时关闭防火墙
systemctl stop network.service
# 永久关闭防火墙
systemctl disable network.service
- 安装redis
下载redis,上传到虚拟机
scp /Users/admin/Desktop/test.txt root@172.16.126.146:/root/
- 编译安装
解压之后,进入到redis的目录中
# 解压
tar -zxvf redis-4.0.11.tar.gz
# 编译redis需要gcc
yum install -y gcc
# 进入redis目录执行编译 指定c的编译库
make MALLOC=libc
# 有可能报错tcl版本太低 yum install tcl
# 编译完成之后执行安装
make install PREFIX=/usr/local/redis
- 启动redis
./redis-server [配置文件路径]
搭建redis缓存
# 设置访问 或者注释掉 bind 127.0.0.1也可
bind 0.0.0.0
# 关闭保护模式
protected-mode no
# 设置后台
daemonize yes
# 启动redis
./redis-server [配置文件路径]
springboot连接简单的redis,或者简单的主从
redis:
host: 192.168.50.2
port: 6379
database: 0
redis主从复制
复制三份redis.conf即可
注意slaveof的ip不可以使用localhost,使用正常ip即可
# 第一份作为master
修改bind port protected-mode no
# 第二份作为slave1
修改bind port slaveof protected-mode no
# 第一份作为slave2
修改bind port slaveof protected-mode no
redis哨兵机制
哨兵启动脚本可能不存在,在解压的redis中复制进去即可
一般下载的redis在用户目录中/root 安装好的redis在/usr/local/redis中
# 新建sentinel文件夹,新建sentinel.conf文件,并填入内容
# 注意 这里的ip务必使用精确ip。而不是127.0.0.1或者localhost
sentinel monitor DIYname (主)ip (主)port 哨兵数量
# 关闭保护模式 否则无法连接
protected-mode no
# 启动哨兵
bin/redis-sentinel sentinel/sentinel.conf
运行然后结束后,会发现文件中自动生成了监视的结构的配置信息
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
此时ctrl-c干掉master,耐心等待三十秒到一分钟,会发现实现了slave替补master
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传
可以发现master变成了7001
springboot通过哨兵连接redis
redis:
# 连接哨兵配置
sentinel:
# 在哨兵配置文件中配置的监视的集群名称
master: hellocluster
# 可以是多个ip:port用逗号分隔
nodes: 192.168.50.2:26379