在线客服
扫描二维码
下载博学谷APP
扫描二维码
关注博学谷微信公众号
为什么要使用Redis?其实是因为Redis是一个性能强劲且具有复制特性的远程内存数据库,它的数据模型更是为解决问题而生。下面小编来详细解析一下Redis。

有memcached使用经验的人可能知道,用户只能用APPEND命令将数据添加到已有字符串的末尾。memcached的文档中声明,可以用APPEND命令来管理元素列表。这很好!用户可以将元素追加到一个字符串的末尾,并将那个字符串当作列表来使用。但随后如何删除这些元素呢?memcached采用的办法是通过黑名单(blacklist)来隐藏列表里面的元素,从而避免对元素执行读取、更新、写入(包括在一次数据库查询之后执行的memcached写入)等操作。相反地,Redis的LIST和SET允许用户直接添加或者删除元素。
使用Redis而不是memcached来解决问题,不仅可以让代码变得更简短、更易懂、更易维护,而且还可以使代码的运行速度更快(因为用户不需要通过读取数据库来更新数据)。除此之外,在其他许多情况下,Redis的效率和易用性也比关系数据库要好得多。
数据库的一个常见用法是存储长期的报告数据,并将这些报告数据用作固定时间范围内的聚合数据(aggregates)。收集聚合数据的常见做法是:先将各个行插入一个报告表里面,之后再通过扫描这些行来收集聚合数据,并根据收集到的聚合数据来更新聚合表中已有的那些行。之所以使用插入行的方式来存储,是因为对于大部分数据库来说,插入行操作的执行速度非常快(插入行只会在硬盘文件末尾进行写入)。不过,对表里面的行进行更新却是一个速度相当慢的操作,因为这种更新除了会引起一次随机读(random read)之外,还可能会引起一次随机写(random write)。而在Redis里面,用户可以直接使用原子的(atomic)INCR命令及其变种来计算聚合数据,并且因为Redis将数据存储在内存里面2,而且发送给Redis的命令请求并不需要经过典型的查询分析器(parser)或者查询优化器(optimizer)进行处理,所以对Redis存储的数据执行随机写的速度总是非常迅速的。
使用 Redis 而不是关系数据库或者其他硬盘存储数据库,可以避免写入不必要的临时数据,也免去了对临时数据进行扫描或者删除的麻烦,并最终改善程序的性能。虽然上面列举的都是一些简单的例子,但它们很好地证明了“工具会极大地改变人们解决问题的方式”这一点。
除了第6章提到的任务队列(task queue)之外,本书的大部分内容都致力于实时地解决问题。本书通过展示各种技术并提供可工作的代码来帮助读者消灭瓶颈、简化代码、收集数据、分发(distribute)数据、构建实用程序(utility),并最终帮助读者更轻松地完成构建软件的任务。只要正确地使用书中介绍的技术,读者的软件就可以扩展至令那些所谓的“Web扩展技术(web-sacle technology)”相形见绌的地步。
相信大家现在已经了解了Redis是什么、它的作用是什么以及为什么要使用它。不过实践出真知,要想真正掌握Redis,还是多多练习使用它吧!
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
Python知识点讲解之Python冒号的使用
本文要讲解Python的知识点是Python冒号。我们都知道,逗号“,”分隔各个维度,“:”表示各个维度内的切片,只有:表示取这个维度的全部值。那么下面小编有一个例子来详细分析下Python冒号的使用。
20387
2019-08-01 20:41:32
网站数据分析思路讲解
网站数据分析思路讲解,网站数据分析基本是围绕顾客进行。不同的人、部门、目标不同对网站数据分析的要求也不同。对网站进行数据分析的前提是需要明确数据分析的目标是什么,主要用来做什么。
6653
2019-10-31 11:50:27
如何判断Python培训机构靠谱吗?
Python培训机构靠谱吗?近几年,互联网浪潮涌起,而Python市场一直是人才稀缺。Python语言简单易学,就业前景广自然也获得了年轻人的青睐。选择靠谱的培训机构,要进行多方面筛选,不能一概而论相信所谓的培训排行名,而导致自己又费钱又费力
6480
2020-04-01 16:41:21
Python中的函数与变量讲解
不知道大家在学习Python的时候,有没有发现一个问题,函数里边的变量和脚本里边的变量好像是无关的。本文今天要讲的就是Python中的函数与变量,如果大家对于这个方面的内容有困惑,不妨来一起学习一下这个Python的基础内容。
8981
2020-04-29 09:46:23
Python基础学完了再学什么?
基础阶段学完Python 基础语法、python 容器、函数和文件操作、面向对象、 python编程和web基础、Linux 操作系统多任务编程、Python 网络编程、静态 web 服务器、HTML、CSS、JavaScript、数据库 MySQL、正则表达式、Python 进阶、mini-web 框架后,需要在进行实操积累项目实战经验。
5777
2021-04-08 16:18:17
