Redis 在 SNS 类应用中的优异实践有哪些

Redis 在 SNS 类应用中的优异实践有:1、消息队列(通知类、延迟更新类);2、热点数据的实时缓存(比如feed,数据库、缓存同时写);3、热点列表数据缓存(首页、热门话题等);4、counter(计数器,大多是用缓存实现的)。

Redis 在 SNS 类应用中的优异实践有哪些-Worktile社区

一、Redis 在 SNS 类应用中的优异实践

  1. 消息队列(通知类、延迟更新类);
  2. 热点数据的实时缓存(比如feed,数据库、缓存同时写);
  3. 热点列表数据缓存(首页、热门话题等);
  4. counter(计数器,大多是用缓存实现的)。

二、Redis适合做什么

  1. 缓存,Redis本身是内存数据库,注定有极高的读写速度和吞吐,加上数据过期功能以及完善的数据淘汰策略使得Redis拥有与生俱来的缓存潜质。
  2. 排行榜系统,Redis提供了zset、list等复杂数据结构,以及极佳的性能,可以做出时间、数量等各种维度的排行榜系统。
  3. 计数器系统,对于视频(音乐)网站的视频播放量、网页浏览量等高频操作,传统的关系型数据库不能够满足需求,Redis本身的incr、incrby等命令很好的支持了这计数功能。
  4. 社交网络,Redis支持多种复杂数据结构,比如一个用户有自己的粉丝,同时也会关注其他人,这些多可以使用set来存储,如果需要有序,可以使用zset来存储,这些复杂的数据结构传统的关系型数据库并不能很好的支持,同时,由于社交网络网站本身访问量比较大,传统数据在性能上也是不能够满足的。
  5. 消息队列,Redis提供了消息队列功能,能够满足一般的消息队列需求。
  6. 分布式锁,Redis提供了SET key value [EX seconds] [PX milliseconds] [NX|XX]命令,以及Lua脚本功能,基于此能够很好的实现分布式锁功能。

三、Redis 不适合做什么

  1. Redis是内存数据库,相比磁盘类型的数据库成本要高不少,注定了Redis不能用于存储大规模的数据。
  2. Redis有足够高的性能,因此对于热数据能够很好满足需求,但如果冷数据存在Redis里不免过于浪费。
  3. Redis数据存储在内存中,对于可用性要求极高,且需要永久保存的数据不建议放在Redis中,虽然Redis提供持久化、复制等功能保证数据落盘,但持久化、复制等也存在时间差,这段时间的数据也不是能够完全保证不丢失的。
  4. Redis是单线程的,对于数据比较大的数据的读写操作会阻塞整个数据库,因此Redis不适合存储单个value比较大的数据。

延伸阅读

Redis特性

  1. Redis是一直基于键值对NoSQL数据库
  2. Redis支持5种主要数据结构:string、hash、list、set、zset以及bitmaps、hyperLoglog、GEO等特化的数据结构;
  3. Redis是内存数据库,因此它有足够好的读写性能;
  4. Redis支持持久化,redis支持AOF和RDB两种持久化方式,确保了内存中的数据不会“丢失”;
  5. Redis的sentinel和复制功能保证了Redis的高可用;
  6. Redis支持key维度的数据过期;
  7. Redis支持发布订阅、“事务”、pipeline、Lua脚本等附加功能。

文章标题:Redis 在 SNS 类应用中的优异实践有哪些,发布者:Z, ZLW,转载请注明出处:https://worktile.com/kb/p/34721

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
Z, ZLW的头像Z, ZLW

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部