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