问题笔记

1、设计短链服务

发号器 + 62进制

2、redis过期数据策略

惰性 + 定时

淘汰策略

3、缓存穿透、击穿、雪崩

穿透:返回NULL值, 设置NULL环境 布隆过滤器

击穿:热点KEY突然失效, 读取mysql加把锁

雪崩:多个KEY同时失效,KEY设置不同的过期时间

4、分布式锁

数据库 主键, 定时任务定期删除过期key

redis ,setnx expire delete

zk 零时节点 , watch 

5、流控

计数器 : 分布式 redis incr,单机incrementAndGet

滑动窗口:1s=100ms+100ms+.. + 100ms, 分别计数

漏桶:请求放队列+定时线程获取请求

令牌桶:令牌放队列+定时线程放令牌; guava Ratelimiter

猜你喜欢

转载自www.cnblogs.com/huilei/p/12293268.html