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在消息队列、分布式锁等场景下也有诸多应用。

(一)Redis介绍的更多相关文章

  1. Redis介绍以及安装(Linux)

    Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...

  2. Redis介绍及常用命令

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

  3. redis 介绍和常用命令

    redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...

  4. Redis介绍及Jedis测试

    1.Redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes ...

  5. redis笔记总结之redis介绍

    一.Redis介绍: redis的发展历史简单的理解为因为使用类似MySql这类关系型数据库不方便进而开发的开源的.轻量级的.非关系型的,直到现在一直不断完善的一款NoSql数据库.具体的介绍大家可以 ...

  6. redis介绍、安装、redis持久化、redis数据类型

    1.redis介绍  2.安装管网:https://redis.io/下载:wget -c http://download.redis.io/releases/redis-4.0.11.tar.gz解 ...

  7. redis介绍以及安装

    一.redis介绍 redis是一个key-value存储系统.和Memcached类似,它支持存储的values类型相对更多,包括字符串.列表.哈希散列表.集合,有序集合. 这些数据类型都支持pus ...

  8. Redis介绍以及安装(Linux)

    Redis介绍以及安装(Linux) redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统.和Memcached类似,但很大程度补偿了memcached的不足,它支持存储的 ...

  9. [Redis_1] Redis 介绍 && 安装

    0. 说明 Redis 介绍 && 安装 1. Redis 介绍 2. Redis 安装(Windows 10) [2.1 解压 redis-2.2.2-win32-win64.rar ...

  10. Redis介绍及Jedis基础操作

    1.Redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes ...

随机推荐

  1. 《SQL 反模式》 学习笔记

    第一章 引言 GoF 所著的的<设计模式>,在软件领域引入了"设计模式"(design pattern)的概念. 而后,Andrew Koenig 在 1995 年造了 ...

  2. Sprint 2 : ios图形界面设计与代码整合

    这周我们主要focus在personal photo experience 项目的ios图形界面设计与代码整合工作上. 工作进度: 1. 图形界面设计方面:兆阳和敏龙基本已经将ios手机客户端的雏形界 ...

  3. TCP基础概念

    定义 传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的.可靠的.基于字节流的传输层通信协议 特点 TCP是一种面向广域网的通信协议,目的是在跨越多个网 ...

  4. Aria2任意文件写入漏洞

    目录: 简介 漏洞描述 payload 漏洞复现 一.Aria2介绍 Aria2是一个命令行下运行,多协议,多来源下载工具(HTTP / HTTPS,FTP,BitTorrent,Metalink), ...

  5. C# 基础知识系列- 12 任务和多线程

    0. 前言 照例一份前言,在介绍任务和多线程之前,先介绍一下异步和同步的概念.我们之间介绍的知识点都是在同步执行,所谓的同步就是一行代码一行代码的执行,就像是我们日常乘坐地铁通过安检通道一样,想象我们 ...

  6. HTML+CSS教程(一)简介及其基本标签的使用方法

    一.前端 HTML(结构):HyPer TEXT Markup LanguageCSS(样式): 样式就是对于结构的一种美化JavaScript(js: 行为/ 提供了用户和界面的交互方式)jQuer ...

  7. 控制反转IOC,依赖注入DI理解

    IOC:控制反转,常规下,高层依赖低层,项目是不稳定的.我们则应该把高层对低层的依赖去掉,换成对抽象的依赖,细节交给第三方来决定,这就是控制反转,反转的目的是为了降低依赖,增强扩展性. DI:依赖注入 ...

  8. Java中集合的嵌套

    集合的嵌套遍历 获取10个1-20之间的随机数,要求不能重复 键盘录入多个数据,以0结束,要求在控制台输出这多个数据的最大值. public static void main(String[] arg ...

  9. Python操作三大主流数据库

    Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:  ...

  10. 微信小程序 POST传值跳坑

    来源:https://www.cnblogs.com/ordinaryk/p/8430462.html 加这个就行了: header : { 'content-type': 'application/ ...