远程字典服务器Redis缓存全接触

译文
存储 Redis
作为一种缓存,Redis博得了很高的人气。它不仅速度快,还易于使用。本文介绍了为何应该使用Redis作为缓存。

【51CTO.com快译】我们都遇到过应用程序运行慢腾腾的情况。再优秀的代码也会在高负载下降低性能。缓存是一种快速且相对省钱的方法,可大幅提升性能,并缩短响应时间。

Redis简介

Redis(远程字典服务器)是一种开源的内存中数据存储,最常用作分布式缓存。它提供各种高效的数据结构,旨在可以高速访问您的数据。Redis又叫NoSQL数据库和键/值存储。由于Redis将数据存储在内存中,而不是存储在磁盘上,提供了无与伦比的速度、可靠性和性能。

那么,内存中数据存储又是什么呢?简而言之,它是将整个数据集保存在内存中的数据库。这意味着每当您查询数据库或更新数据库中的数据时,仅访问主内存。因此,这些操作不涉及磁盘。这很棒,因为主内存比任何磁盘都要快得多。

为什么将Redis用作缓存?

缓存的主要目的是,缩短访问存储在应用程序主内存空间之外的数据所需的时间。如果不使用缓存,应用程序针对每个请求与数据源进行交互;如果使用缓存,只需要对外部数据源发出单个请求,随后的访问由缓存来处理。

应用程序依赖外部数据源时,这些数据源的延迟和吞吐量会造成性能瓶颈。提升性能的一种方法是在内存中存储和处理数据,其位置更靠近应用程序。

这时候Redis就能发挥作用。Redis旨在将所有数据存储在内存中,从而在读取或写入数据时提供尽可能高的性能。

Redis的速度极快。它提供亚毫秒级响应时间,每秒可支持数百万个请求,以支持要求苛刻的实时应用程序。

您要做的通常是将经常访问的数据存储在Redis中,那样无论何时请求数据,数据都可以来自缓存而不是您的数据库。然后,只要对您的数据进行更改,就可以使相关缓存无效,那样您可以让缓存保持最新。

Redis缓存的工作原理

假设您有一个基于WordPress的网站。

WordPress页面首次加载时,在服务器上执行数据库查询。Redis会记住或缓存该查询。因此,另一个用户加载WordPress页面时,结果从Redis和内存来提供,无需查询数据库。

对象缓存的工作原理是将加载WordPress页面所需的SQL查询缓存在内存中。当页面加载时,生成的SQL查询结果由Redis从内存来提供,因此查询不必命中数据库。结果是页面加载时间短得多,服务器对数据库资源的影响较小。

 

图1. Redis的工作原理

访问内存(物理RAM)中的数据比访问硬驱中的数据要快得多。因此很容易注意到,如果应用程序想要访问的数据在主内存中,访问该数据比访问存储在硬驱上的数据容易得多。

如果查询在Redis中不可用,数据库提供结果,Redis将结果添加到缓存中。如果值在数据库中加以更新(比如在WordPress中创建了一个新的帖子或页面),该查询的Redis值将无效,以防止提供错误的缓存数据。

为什么使用Redis?

  • 快速响应的数据库:它将数据存储在内存中,而不是存储在磁盘上,因此执行读写操作时,响应时间比其他数据库快。可以与其他数据库一起使用,有助于减轻负载、提升性能,但也可以用作主数据库。
  • 数据持久性:Redis使用持久性磁盘存储,旨在遇到进程中断和网络瓶颈后可以存活下来。
  • 会话缓存:Redis最明显的使用场景之一是将其用作会话缓存。与其他会话存储相比,使用Redis的优点在于Redis提供了持久性。
  • 基于键的访问:Redis基于键值模型,其中数据由Redis通过键来存储和获取。基于键的访问带来了极高效的访问时间,这种模型可自然地映射到缓存。

想了解Redis的更多信息以及相关资源,可以访问说明文档:https://redis.io/。

原文标题:Redis as Cache: How it Works and Why to Use it,作者:Bobby Borisov

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:华轩 来源: 51CTO
相关推荐

2010-07-02 11:00:53

GSMP协议

2020-08-21 07:00:00

DevOpsIT开发

2012-10-10 09:12:54

Windows Sys

2009-12-03 11:22:07

路由器功能指标

2020-10-21 09:00:15

Azure Sprin云服务日志

2010-07-09 16:16:45

SQL Server

2009-12-23 15:52:32

无线上网全接触

2010-09-08 13:42:06

2018-04-28 10:54:31

缓存服务器运作

2009-02-27 13:53:00

远程服务器RAS

2011-07-06 15:33:02

ASP

2015-05-05 15:24:42

TCPIPVNC远程

2020-04-28 09:00:00

测试测试自动化

2011-07-06 15:36:31

ASP

2011-08-30 11:19:25

远程服务器数据中心迁移服务器管理工具

2010-09-10 13:27:42

无线网络辐射

2009-07-02 15:07:40

Java认证考试

2010-04-15 16:58:08

英特尔酷睿高清

2012-09-26 16:32:29

2009-07-22 10:25:37

点赞
收藏

51CTO技术栈公众号