首页
注册
登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请
登录
V2EX
›
homjay
›
全部回复第 1 页 / 共 1 页
回复总数
1
141 天前
回复了
dumbbell5kg
创建的主题
›
数据库
›
昨天面试的几个 MySQL 和 Redis 的题目,来请教一下
小白总结了下,大佬们是这个意思吗
1:
场景:秒杀系统(新起专门处理秒杀请求的服务,独立部署,减少对主站的影响)
流程:前端 -> 网关(nginx) -> 后端 -> 缓存(redis) -> 数据库(mysql)
原则:
1 、限流:前端选择性向后端发送真正请求(根据时间戳取余,用户会多次点击)、nginx (网关限流 1 分钟最多请求 10000 次)
2 、过程:
1 、2024-07-15 12:00 开启秒杀活动
2 、2024-07-15 11:30 秒杀服务从 mysql 读取数据,写入到 redis 缓存(预热准备)
3 、2024-07-15 12:00 时间到达
4 、(小王)请求发送 -> 后端判断用户是否符合参加活动 -> 开启 redis 锁 -> 从 redis 读取数据 -> 实现业务逻辑(库存相减...) -> 更新 reids 里面的值
5 、秒杀活动持续 1 分钟
6 、2024-07-15 12:01 时间结束
7 、2024-07-15 12:01 将 redis 数据回写到 mysql
2:
线上 Redis 内存满了,应该如何处理?
方案:
1 、判断是否有未设置过期时间(TTL)的 key
2 、内存淘汰策略
3 、添加监控
3:
你认为解决高并发问题的本质是什么
本质:
1 、系统同时处理大量请求,确保响应时间可接受且系统资源不被耗尽
方案:
1 、系统同时处理大量请求 => 减少请求(限流)
2 、系统资源不被耗尽 => 加强系统资源 => 花钱升级服务器
3 、系统资源不被耗尽 => 耗时的任务 => 减少耗时时间 => (旁路缓存,不经常更新数据,原来从 mysql 读取,优化为从 redis 读取)
关于
·
帮助文档
·
博客
·
API
·
FAQ
·
实用小工具
·
1224 人在线
最高记录 6679
·
Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 10ms ·
UTC 18:14
·
PVG 02:14
·
LAX 10:14
·
JFK 13:14
Developed with
CodeLauncher
♥ Do have faith in what you're doing.