Redis的那些应用 | 青训营笔记

95 阅读2分钟

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


Redis

Redis 是一个高性能的内存数据库,速度快,也支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。由于 Redis 极高的性能和丰富的数据类型得到青睐。

特点

  • 内存数据库,速度快,也支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。
  • Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  • Redis支持数据的备份,即master-slave模式的数据备份。
  • 支持事务

Redis 应用

连续签到

使用 String : 存储计数、Session

key:uid
value:天数
expire:下一天的零点

消息通知

使用 list 作为消息队列: 消息通知。当文章更新时,将更新后的文章推送到ES,用户就能搜索到最新的文章数据

计数

一个用户有多项计数需求,可以通过 hash 结构来存储。

key:uid
value: 文章被点赞数、文章被收藏数、关注数、关注者、收藏数、关注标签数

排行榜

使用 zset :积分变化时,排名要实时变更

限流

要求1秒内放行的请求为N,超过N则禁止访问 使用 string,对key调用incr方法,每次接收到请求时将value加一,到达限制N后,则禁止访问。

key:comment_limit_当前时间戳
value:请求数

分布式锁

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

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

  • redis是单线程执行命令的。
  • setnx只有未设置过才能执行成功。

如果你发现了文章出现了错误或有不足,欢迎在评论区和我交流,我看到了一定会回复。

写文章不易,如果你觉得文章对你有帮助,麻烦点一下点赞、收藏,你的支持是我写文章的最大动力!