概述
在此基础上实现主从(master-slave)同步功能
场景
##安装redis
安装虚拟机,运行指令ip addr在ens33中查看本机IP地址,斜杠后面的端口号不是SSH链接时用的端口,用finalshell链接时用22,然后进去安装redis即可
1.默认启动方式redis -server(前台启动)
2.改后台启动:修改配置文件
3.添加系统服务,实现开机自启
先备份,再修改
[root@localhost redis-7.0.5]# cp redis.conf redis.conf.bck
vi redis.conf
修改按insert
搜索内容/something
保存退出:wq
启动:redis-server redis.conf(加上配置文件的绝对路径,如果就在redis-server下那就相对路径)
查看进程:ps -ef | grep redis
杀死进程:kill -9 进程号
连接redis客户端:redis-cli
退出客户端:shutdown或者杀死进程
redis数据结构
String, List, Set, Hash, Zset
新数据类型:Bitmaps(一串二进制字符串,节约空间), HyperLogLog(用于统计基数问题,即不重复数据个数,更节约空间), Geospatial(地理信息经纬度)
Zset底层数据结构:hash + 跳跃表
内存满了后的数据移除方法
redis订阅与发布
redis中的一种通信方式,消息的发送与接收
Jedis
连接不到redis客户端时,使用命令systemctl status firewalld查看防火墙状态,systemctl stop firewalld关闭防火墙就能连接成功
SpringBoot整合Redis
1.添加依赖(redis和redis连接池)
2.配置文件中配置redis的相关配置
3.添加redis配置类
4.添加测试方法
Redis事务操作
Multi:命令组队阶段
Exec:命令执行阶段
Discard:放弃组队
redis中的事务冲突(悲观锁和乐观锁)
redis乐观锁的实现:使用watch监视需要监视的key,如果发生变动,事务执行失败
redis事务三个特性:
单独的隔离操作,没有隔离级别的概念, 不保证原子性
redis秒杀案例
redis持久化
RDB(redis database):在指定的时间间隔内将内存中的数据集快照写入磁盘
AOF(append of file)
AOF默认不开,和RDB同时开启,redis默认使用AOF
AOF的同步频率(每个操作都记录,每秒,交给操作系统决定)
AOF重写rewrite(触发时机?大小达到一定程度)
主从复制
可以有多个主吗?
通常不可以,但是可以通过集群实现,集群:多个(一主多从)
主服务器做写操作,从做读操作
主从复制原理:
redis在应用中遇到的问题
缓存穿透
解决方案:
缓存击穿
解决方案
缓存雪崩
解决方案