Redis缓存的核心原理就是用内存当大仓库,先查内存快如闪电,不在再去数据库慢慢找。原理图:用户请求 → Redis内存检查key → 命中直接返回 → 未命中查数据库并存入Redis → 返回结果。下次再来直接从Redis拿,速度飞起!这就是缓存穿透、雪崩、击穿的防范基础。
第一篇:缓存的基本工作流程
1. 用户发请求,程序先去Redis里找数据;2. 如果Redis里有(缓存命中),直接返回,超快;3. 如果没有,去数据库查,查到后把数据存到Redis,下次就好用了;4. 设置过期时间,避免数据太旧。图解:箭头从客户端→Redis(绿灯命中)→响应;或Redis(红灯未命中)→DB→存Redis→响应。
第二篇:为什么Redis这么快?
Redis用单线程+内存存储+事件驱动。数据全在内存,读写不用磁盘IO。单线程避免了多线程切换开销,事件驱动处理并发。图:内存块堆数据,用户请求直奔内存块,秒取;对比数据库:请求→磁盘→加载→返回,慢半拍。
第三篇:缓存雪崩怎么防?
雪崩是Redis全挂,请求全砸数据库。防:1. Redis高可用,主从+哨兵;2. 随机过期时间,别都一起过期;3. 热点数据多级缓存。图:正常Redis集群多节点;雪崩时:熔断器挡住请求,降级用本地缓存。
第四篇:缓存击穿和穿透
击穿:热点key过期,大流量砸数据库。防:加锁或热点key永不过期。穿透:查不存在数据,一直打数据库。防:布隆过滤器先判断存不存在。图:击穿箭头集中一个key过期洞;穿透箭头直穿到底层空数据库。
第五篇:Redis数据结构简单用
String存简单值如用户session;Hash存对象如用户信息;List做队列;Set去重集合;ZSet有序排行。图:String key-value直连;Hash像字典嵌套;List左右两端插拔。
第六篇:持久化原理
RDB快照定时全量备份磁盘;AOF日志追加每写操作。重启恢复:RDB快恢复大文件,AOF准但慢。混合用最佳。图:写内存同时日志AOF,定时RDB dump。
FAQ
Q: Redis缓存过期了数据怎么更新?
A: 用定时任务或 Canal 监听数据库变化主动更新。
Q: Redis内存满了咋办?
A: 设置maxmemory和淘汰策略如LRU最近最少用踢掉。
Q: 单线程Redis怎么高并发?
A: IO多路复用,一个线程管多个连接,非阻塞。
Q: 主从复制怎么工作?
A: 主发命令,从实时同步,读写分离。