1 背景

在早期的互联网Web 1.0时代,大部分企业还是采用传统的企业级单体应用架构,而一时间蜂拥而至的巨大用户流量使得这种架构难以支撑,通过对诸多系统架构实施以及对巨大用户流量的分析过程中发现,其实用户的读请求远远多于用户的写请求,频繁的读请求在高并发情况下会增加数据库的压力,导致数据库服务器的整体压力上升,从而导致服务器出现响应慢、卡顿等问题,严重情况下会导致服务器崩溃。

为了解决这个问题,许多架构引入了缓存组件,Redis就是其中的一种,它将用户频繁需要读取的数据存放到缓存中,减少数据库的I/O操作,降低数据库整体的压力。

2 优势

Redis是基于内存的、采用key-value结构化存储的NoSQL数据库,加上其底层采用单线程和多路I/O复用模型,所以Redis的查询速度很快。根据Redis官方提供的数据,它可以实现每秒查询的次数达到10w+,而这在某种程度上足以满足大部分的高并发请求。

3 用途

Redis主要有三大典型的应用场景:

(1)热点数据的存储和展示:将大部分用户频繁访问的数据进行缓存,这些数据对于所有用户来说,访问将得到同一个结果,比如微博热搜,如果采用传统的查询数据库方式来获取热点数据,将大大增加数据库的压力,从而降低数据库的读写性能。

(2)最近访问数据:用户最近访问过的数据记录在数据库中将采用日期字段作为标记,频繁查询的实现是采用该日期和当前时间做时间差的比较查询,这种方式相当耗时,而采用redis的List作为最近访问的足迹的数据库结构,将大大降低数据库频繁的查询请求。

(3)高并发访问:对于高并发访问某些数据的情况,Redis可预先将这些数据缓存起来,每次高并发请求过来则可以直接从缓存中获取,从而减少高并发访问给数据库带来的压力。

除此之外,Redis在消息队列、分布式锁等场景下也有诸多应用。

最新文章

  1. eclipse tomcat add and remove工程异常
  2. tiny4412学习一:编译uboot,体验裸机
  3. Simple-RTMP-Server 服务器搭建
  4. [原创]android自定义控件的最大高度MaxHeightView
  5. No.012:Integer to Roman
  6. Nginx 性能优化
  7. SqlHelper 带详细中文注释
  8. C++中栈区 堆区 常量区
  9. c语言学习之基础知识点介绍(一):输出语句和变量简单介绍
  10. diy 电脑 重装系统
  11. 基于HTML5多图片Ajax上传可预览
  12. curl返回值写入内存的场景
  13. 两个List比较各自对象的属性相同的问题
  14. Linux显示登录Shell信息
  15. HAOI 2012 高速公路
  16. PA 模块常用表2
  17. Android不同系统版本依然能调用到正确的API方法Demo——Service调用startForeground举例
  18. BizTalk RosettaNet 开发笔记
  19. ADC配置成定时器触发的启发
  20. 详述socket编程之select()和poll()函数

热门文章

  1. 五分钟!用python绘制漂亮的系统架构图
  2. cheat sheet 简介
  3. L5语言模型与数据集
  4. 美的PDF转换成Word转换器完全免费
  5. MVC-前端设计
  6. golang 基础 map及工厂函数
  7. JavaScript--'data-'的用法(1)
  8. php 关于 & 引用赋值
  9. php正则匹配到字符串里面的a标签
  10. Scala教程之:scala的参数