随着数据量的增长,MySQL 已经满足不了大型互联网类应用的需求。因此,Redis 基于内存存储数据,可以极大的提高查询性能,对产品在架构上很好的补充。在某些场景下,可以充分的利用 Redis 的特性,大大提高效率。

缓存

对于热点数据,缓存以后可能读取数十万次,因此,对于热点数据,缓存的价值非常大。例如,分类栏目更新频率不高,但是绝大多数的页面都需要访问这个数据,因此读取频率相当高,可以考虑基于 Redis 实现缓存。

会话缓存

此外,还可以考虑使用 Redis 进行会话缓存。例如,将 web session 存放在 Redis 中。

时效性

例如验证码只有60秒有效期,超过时间无法使用,或者基于 Oauth2 的 Token 只能在 5 分钟内使用一次,超过时间也无法使用。

访问频率

出于减轻服务器的压力或防止恶意的洪水攻击的考虑,需要控制访问频率,例如限制 IP 在一段时间的最大访问量。

计数器

数据统计的需求非常普遍,通过原子递增保持计数。例如,应用数、资源数、点赞数、收藏数、分享数等。

社交列表

社交属性相关的列表信息,例如,用户点赞列表、用户分享列表、用户收藏列表、用户关注列表、用户粉丝列表等,使用 Hash 类型数据结构是个不错的选择。

记录用户判定信息

记录用户判定信息的需求也非常普遍,可以知道一个用户是否进行了某个操作。例如,用户是否点赞、用户是否收藏、用户是否分享等。

交集、并集和差集

在某些场景中,例如社交场景,通过交集、并集和差集运算,可以非常方便地实现共同好友,共同关注,共同偏好等社交关系。

热门列表与排行榜

按照得分进行排序,例如,展示最热、点击率最高、活跃度最高等条件的排名列表。

最新动态

按照时间顺序排列的最新动态,也是一个很好的应用,可以使用 Sorted Set 类型的分数权重存储 Unix 时间戳进行排序。

消息队列

Redis 能作为一个很好的消息队列来使用,依赖 List 类型利用 LPUSH 命令将数据添加到链表头部,通过 BRPOP 命令将元素从链表尾部取出。同时,市面上成熟的消息队列产品有很多,例如 RabbitMQ。因此,更加建议使用 RabbitMQ 作为消息中间件。

Redis还有什么其它的使用场景么?欢迎下方留言探讨。

Redis 使用场景相关推荐

  1. AliCloudDB for redis应用场景之存储最新N条聊天记录

    AliCloudDB for redis应用场景之存储最新N条聊天记录 场景介绍 在各种IM通信工具中,常常需要展示最新的聊天记录,这种数据写入频繁,对响应时间要求高.一般情况,这种场景通常会选择持久 ...

  2. Redis应用场景说明与部署

    Redis简介 REmote DIctionary Server(Redis)是一个基于key-value键值对的持久化数据库存储系统.redis和大名鼎鼎的memcached缓存服务很像,但是red ...

  3. Redis使用场景、Redis线程模型、Redis持久化 - 公开课笔记

    redis和数据库怎么写同步? 分布式如何达到一致性? CAP 一致性.可用性.性能 HA:高可用,不存在没有任何时延.没有任何波动的高可用 容忍度只要达标,就可以.不要为了技术而技术->你会否 ...

  4. 转载:Redis 应用场景

    2019独角兽企业重金招聘Python工程师标准>>> 1.  MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载 ...

  5. Redis应用场景(转)

    (来源:http://www.cnblogs.com/shanyou/archive/2012/09/04/2670972.html) Redis常用数据类型 Redis最为常用的数据类型主要有以下五 ...

  6. redis 数据类型详解 以及 redis适用场景场合

    redis 数据类型详解 以及 redis适用场景场合 1. MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访 ...

  7. Redis应用场景-排行榜

    文章目录 Redis应用场景-排行榜 前言 排行榜 今日热搜 热门视频排行榜 周歌曲点播榜 参考文档 Redis应用场景-排行榜 前言 使用Redis的有序集合(Sorted set)可以很方便地实现 ...

  8. 详解 Redis 应用场景及应用实例

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...

  9. Redis 应用场景和应用实例详解

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...

  10. 详解 Redis 应用场景及原理

    本文转自https://blog.csdn.net/niucsd/article/details/50966733,描述了redis实现原理和应用场景,篇幅较长,有意学习redis的同学可耐心阅读. ...

最新文章

  1. 德鲁克管理31条金句
  2. IDC评述网:2012年11月全国IDC品牌排行榜
  3. sparkSQL1.1入门之二:sparkSQL执行架构
  4. 华硕笔记本电池0%充不进电_笔记本电脑电池充不进电如何解决【解决方法】
  5. 用今日头条的方法推荐公开课
  6. 成功解决Both binary classification-only and multiclassification-only loss function or metrics specified
  7. Mac搭建Lua运行环境
  8. linux内核中用来对共享资源进行隔离,简单理解Docker
  9. 云计算中HMI的三大优点
  10. Silverlight4.0教程之WebBrowser控件(Silverlight内置HTML浏览器控件)
  11. 两个瓶子水怎样一样多_同事每天比我多睡两个小时!省下70万买了地铁站附近房子 杭州姑娘却感叹买房时一定是脑子进了水……...
  12. 信息学奥赛C++语言:插队问题
  13. Python __all__的作用
  14. Qt5Widgetsd.lib(Qt5Widgetsd.dll) : fatalerror LNK1112: 模块计算机类型“x64”与目标计算机类型“X86”冲突
  15. css transition transform animation例子讲解
  16. Win10下Matlab r2018a 64位 中文破解版的安装以及破解方法
  17. 直立车控制之PID算法分析
  18. react native 直传 阿里云 OSS云存储
  19. qt qml StackView 触摸滑动返回(swiping pop)
  20. pip 使用国内镜像源的介绍

热门文章

  1. Linux内核设计与实现(13)第十三章:虚拟文件系统
  2. 每日算法-数字转换为十六进制
  3. matlab中画网格,matlab怎么画网格
  4. JavaScript葵花宝典(基础)
  5. 关于Jason封装数据使其在前端展示的简单操作
  6. 2022-2028全球3D透视导航技术行业调研及趋势分析报告
  7. 达人秀计算机教学,回顾〡信息技术达人秀
  8. linux 批量ping多个连续的IP地址
  9. 《中国美食》习字优秀作品展示
  10. Matlab入门基础详解