这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天
Redis基本工作原理
Redis应用案例
1、连续签到
1、Incr在原有基础上+1
2、过期,过期后归为0
expireAt:后天的0点
String数据结构
- 存储是足够节省空间
- 很快地读出来
- 数据变更,很快地写入
2、 消息通知
Quicklist
listpack
3、计数
pipe 一次设置多个key时
Hash数据结构dict
4、排行榜
积分变化时,排名要实时变更
zset数据结构 zskiplist
- 查找数字7的路径,head,3,3,7
- 结合dict后,可实现通过key操作跳表的功能
- ZINCRBY myzset 2 "Alex"
- ZSCORE myzset "Alex"
dict可以查找分值
5、限流
要求1秒内放行的请求为N,超过N 则禁止
Key:comment_freq_limit_1671356036 对这个key调用incr,超过N则禁止访问,1671356036是当前时间戳
6、分布式锁
并发场景,要求一次只能有一个协程执行,执行完成后,其他等待的协程才能执行。
可以使用redis的setnx实现,利用两个特性
- Redis是单线程执行命令
- setnx只有未设置过才能实现
- 不能成为高可用分布式锁
Redis使用注意事项
【后端专场 学习资料七】第五届字节跳动青训营 - 掘金 (juejin.cn) 第五届青训-Redis-大厂程序员是怎么用的.pptx - 飞书云文档 (feishu.cn)