Redis | 青训营笔记

53 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 8 天

Redis基本工作原理

Redis应用案例

1、连续签到

1、Incr在原有基础上+1

2、过期,过期后归为0

expireAt:后天的0点

String数据结构

image.png

image.png

  • 存储是足够节省空间
  • 很快地读出来
  • 数据变更,很快地写入

2、 消息通知

image.png

Quicklist

image.png

listpack

image.png

3、计数

image.png pipe 一次设置多个key时

Hash数据结构dict

image.png

4、排行榜

积分变化时,排名要实时变更

image.png

zset数据结构 zskiplist

  • 查找数字7的路径,head,3,3,7
  • 结合dict后,可实现通过key操作跳表的功能
    • ZINCRBY myzset 2 "Alex"
    • ZSCORE myzset "Alex" image.png

image.png dict可以查找分值

5、限流

要求1秒内放行的请求为N,超过N 则禁止

Key:comment_freq_limit_1671356036 对这个key调用incr,超过N则禁止访问,1671356036是当前时间戳

6、分布式锁

并发场景,要求一次只能有一个协程执行,执行完成后,其他等待的协程才能执行。

可以使用redis的setnx实现,利用两个特性

  • Redis是单线程执行命令
  • setnx只有未设置过才能实现
  • 不能成为高可用分布式锁

image.png

Redis使用注意事项

【后端专场 学习资料七】第五届字节跳动青训营 - 掘金 (juejin.cn) ‌⁤‬‬⁤⁡​‍‬‌‌⁢‬⁣⁡⁣​⁣​​​‍‌⁢⁤‬⁢‬⁣⁤​‬⁢‍‌‬⁣​​‍​‍⁡‬⁡⁡第五届青训-Redis-大厂程序员是怎么用的.pptx - 飞书云文档 (feishu.cn)