文章目录
一、进阶内容概述:
1. redis 面试题
2. jvm 了解
3. 并发编程线程 重点
4. java进阶 面向对象设计原则设计模式
5. spring框架 重点
6. mysql 重点
7. 分布式微服务架构
8. 面试讲解
二、Redis
非关系型数据库,以键值对形式存储在内存中,支持多种数据类型,支持数据持久化
使用场景:
1. 缓存(mybatis一级二级缓存)访问量大的(秒杀,点赞),修改少的,存储验证码(定时)
2. 计数器(点赞)
3. 排行榜(zst)
4. 数据去重(set)
5. 消息队列(list)排号
6. 分布式锁
a.Redis线程模型
6.0之前是单线程模式的,处理客户端和读写操作是一个线程的
6.0之后是多线程,将客户端链接请求部分采用多线程处理,执行读写命令依然采用单线程(线程安全的)
为什么设计为单线程模型速度也很快
- 基于内存操作:读写都是在内存中进行的
- 底层存储结构是哈希表,通过key计算哈希值,快速定位
- 单线程设计避免线程切换,减小开销
b.Redis持久化
Redis数据存储在内存中有可能数据丢失,所以提供数据持久化机制
两种方式:
RDB方式:是Redis中默认的持久化方式,以快照方式将某一时刻的Redis数据保存到rdb文件中,redis.conf文件中可以配置save规则
AOP方式:以日志形式记录写操作(增删改)命令,恢复数据时,逐行执行命令即可,在配置文件中开启,才可以
c.Redis和Mysql如何保证数据一致
- 当更新完Myqsql后,立即更

本文详细介绍了Redis的进阶内容,包括Redis的单线程模型为何能保持高效率,持久化机制的RDB和AOP方式,如何与MySQL保证数据一致性,以及事务、主从复制、哨兵模式、Key过期策略,以及应对缓存穿透、缓存击穿和缓存雪崩的策略。
最低0.47元/天 解锁文章
1377

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



