阅读更多

11顶
0踩

研发管理

转载新闻 Redis 在现实世界的 5 个用法

2018-04-11 11:19 by 副主编 jihong10102006 评论(3) 有32600人浏览
Redis是一个强大的内存数据结构存储,包含数据库,缓存和消息代理等多种用途。大多数人经常认为它不过是一个简单的键值存储,但其实它有更多的能力。下面我将会总结一些Redis可以做的事情的真实例子。

1.全页面缓存

首先是整页缓存。如果你正在使用服务器端呈现的内容,则不需要为每个单独的请求重新渲染每个页面。使用如Redis这样的缓存,你可以缓存经常请求的内容,从而大大减少请求最多的页面的延迟,并且大多数框架针对Redis缓存页面都有hooks。
简单命令
/ Set the page that will last 1 minuteSET key "<html>...</html>" EX 60// Get the pageGET key
2.排行榜

Redis令人耀眼的地方之一就是排行榜。由于Redis在内存中,因此可以非常快速和高效地处理递增和递减。将此与每个请求运行SQL查询比较,性能收益巨大!这与Redis的排序集相结合意味着你可以以毫秒为单位抓取列表中评分最高的项目,而且实现起来非常容易。
简单命令
// Add an item to the sorted setZADD sortedSet 1 "one"// Get all items from the sorted setZRANGE sortedSet 0 -1// Get all items from the sorted set with their score ZRANGE sortedSet 0 -1 WITHSCORES
3.会话Session存储

我所见的Redis最常见的用途是会话存储。与其他会话存储(如Memcache)不同,Redis可以保留数据,以便在缓存停止的情况下,在重新启动时,所有数据仍然存在。即便不是需要严格持续的任务,此功能仍可以为你的用户省去大量的麻烦。没有人会乐于见到他们的会话被无缘无故随机删掉。
简单命令
// Set session that will last 1 minuteSET randomHash "{userId}" EX 60// Get userIdGET randomHash
4.队列

使用Redis可以做的一个不太常见,但非常有用的事情是排队。无论是电子邮件队列还是其他应用程序使用的数据,你都可以在Redis中创建一个高效的队列。任何熟悉堆栈以及会push和pop项目的开发人员都可以轻松自然地使用此功能。
简单命令
// Add a Message HSET messages <id> <message>ZADD due <due_timestamp> <id>// Recieving Message ZRANGEBYSCORE due -inf <current_timestamp> LIMIT 0 1 HGET messages <message_id>// Delete Message ZREM due <message_id>HDEL messages <message_id>
5.pub/sub

Redis在真实世界的最终用法即我将在这篇文章中提出的pub / sub。这是Redis内置的最强大的功能之一;得到的可能是无限的。你可以创建一个实时聊天系统,在社交网络上触发好友请求的通知等等。这个功能是Redis提供的最被低估的功能之一,但功能非常强大,而且使用简单。
简单命令
// Add a message to a channelPUBLISH channel message// Recieve messages from a channelSUBSCRIBE channel
结论

我希望你会喜欢这些Redis在真实世界的使用。虽然这篇文章只抓住了Redis能为你做的事情的表面,但是我希望你能从中获得应如何充分利用Redis的启发。
  • 大小: 14.4 KB
来自: 代码技巧
11
0
评论 共 3 条 请登录后发表评论
3 楼 hongyabing 2018-05-02 15:25
2 楼 andy54321 2018-04-13 14:48
redis很强大。
尤其是结合 redis sentinel 和 3.x后支持 的 redis cluster。
1 楼 masuweng 2018-04-12 15:03
  

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Redis现实世界的 5 个用法(转) Redis是一个强大的内存数据结构存储,包含数据库,缓存和消息代理等多种用途。大多数人经常认为它不过是一个简单的键值存储,但其实它有更多的能力。下面我将会总结一些Redis可以做的事情的真实例子。  1.全页面缓存 首先是整页缓存。如果你正在使用服务器端呈现的内容,则不需要为每个单独的请求重新渲染每个页面。使用如Redis这样的缓存,你可以缓存经常请求的内容,从而大大减少请求最多的页面的延...
  • 再来给世界建模
  • 数据模型——从现实世界到信息世界——再到物理世界(设计数据库的整体思路) 数据模型是对现实世界数据特征的抽象,说白了就是数据模型是用来描述数据、组织数据、操作数据的。 数据库模型是数据库系统的核心和基础。数据模型分类两类:①概念模型 也称之为信息模型,它是站在用户的角度来对数据和信息建模的,主要用于数据库设计。 ②逻辑模型和物理模型 逻辑模型主要包括层次模型、网状模型、关系模型、等。而物理模型是对数据最顶层的抽象。 为了把现实世界中的具体事务抽象、组织为某一数
  • 现实世界与虚拟世界的差别在哪里 现实世界与虚拟世界的差别在哪里     红朝儒生 2014-7-15   关键字:现实世界 虚拟世界 信息 无限 有限 简介:现实世界,与虚拟世界的真正差异,在于现实世界的信息量是无限的。更根本的差异,在于现实世界可以把无限化于有限。       最近看一个动画片,关于电脑游戏方面的。其中有一人问:现实世界与虚拟世界的差别在哪里?吾听了一愣,嗯?这个问题问得有意思。如果虚拟世界...
  • 浅谈OOP与现实世界之间关系(面向对象的特征) 面向对象程序设计语言(Object-Oriented Programming ,OOP)是一种用计算机表达现实世界的方式。从现实世界到能用计算机表述过程中抽象无处不在。 对象
  • 建议112:将现实世界中的对象抽象为类,将可复用对象圈起来就是命名空间 建议112:将现实世界中的对象抽象为类,将可复用对象圈起来就是命名空间 在我们身边的世界中,对象是什么?对象就是事物,俗称“东西”。那么,什么东西算得上是一个对象呢?对象有属性、有行为。以动物为例,比如猫(Cat)。Cat可以有Name,这就是属性;Cat有一个恶习ScratchSofa(挠沙发),这就是行为。我们把这些属性和行为结合起来,就称为一个类型: class Ca
  • 编程是现实世界的抽象 在我们的现实世界中,复杂而繁芜。然而,总会有聪明的人将现实世界具有相同特性的特征进行一定程度的抽象总结。这种抽象后的一种理解,能够被运用到各个方面。机器作为人类各种活动的放大器,能够更加方便或者高效的帮助我们完成一定的工作,特别是计算机的出现和快速发展,使人类的计算效率放大了无数倍。随着计算机的产生,编程也应运而生。编程作为一种规范和指引计算机行为的一种语言,能够让计算机按照我们的意愿去完成相应的...
  • 对象——从现实世界的抽象(*) 关键词:   对象    抽象    状态    映射    静态 对象和类 对象一词,我们可能会联想到一个物体。比如一支笔,一本书,等等。他们都可以称为对象。对象其实就是现实生活中常见的事物,每个事物都可以叫做对象。反过来讲,严格的说对象不能简单的叫做事物,它是对事物的统称。这是广义的对象。 在现实世界中,在我们人类的视角下,会对各种事物进行一个分类,比如动
  • 现实世界到抽象世界 当我们拿起一个苹果的时候,在我们内心中,会将这个物体抽象为:苹果,它具有圆圆的,带些红色的外表,可以吃,可以解渴等等。我们所认识的可以用来描述苹果的词汇,都是我们抽象出的概念。进一步可以说,我们所看到的,所听到的,所触到的,所嗅到的,所尝到的,范次种种都是我们抽象的概念。 人工智能是存在于抽象世界里,人类的智能就是建立在抽象世界上的,所以我们需要将现实世界转化为一个抽象世界。 我们抽象出了距离
  • 游戏改变世界:游戏化如何让现实变得更美好
  • 黑客帝国里的真实世界 人类的科技文明发展到某一天,机器的人工智能已经开始超越了人所能控制的范围。于是,机器开始了挑战人类的战争,结果,机器打胜了。地球上的人类分成了两部分,一部分是被驱逐到地心深处一个名叫锡安(Zion)的溶洞中的地球原著民,他们继续在跟机器进行着战斗,试图摧毁机器世界,重新获得地球的主宰权;另一部分则是机器的战利品,他们一生下来就被养在机器制造的试管中,也会生长发育,只是他们并不知道过去曾经发生的一切
  • 如果说这个世界不是真实存在的,只是一段代码,迄今为止你发现了哪些bug? 知乎上有一个这样的帖子,回答都蛮精彩的,不过有一个特别精彩,不明觉厉的赶脚! http://www.zhihu.com/question/20198823 摘贴如下: 刘斯翔,教法语的计算机专业毕业生,懂浪漫 张浩然、Si LA、凌小晨 等人赞同 给这个世界写代码的不是一个人,而是一个团队(这么大的项目,一个人开发不了)。而且严重怀疑这个一个开源项目。
  • 虚拟世界可以融入现实世界,但不能取代现实世界 今天看到了美国MIT Media Lab(麻省理工学院媒体实验室)的天才学生普拉纳夫- (Prarnav Mistry),发明了一项结合实体世界和虚拟世界的科技。 [url]http://www.iteye.com/news/12856-Sixth-Sense[/url] 真的很棒,我想未来的趋势就应该这样,也许还可以更先进,通过虚拟世界现实世界的结合是多么的和谐啊。 《未来战...
  • 信息的三种世界 第三讲 信息的三种世界 教师课件搬运,非原创,今后也要好好加油~
  • 《增强现实:融合现实与虚拟世界 空间增强现实:融合现实和虚拟世界 2016年2月18日      上海普陀区 翻译:Taylor Guo 目录 1     增强现实简介... 5 1.1      什么是增强现实?... 5 1.2       目前的挑战... 5 1.3      空间增
  • https://blog.csdn.net/wxl1390/article/details/78621898
  • https://blog.csdn.net/mjianglei/article/details/52329719
  • 物质世界与精神世界 人类认识世界都是通过有限的感受器,如眼睛、耳朵、鼻子、皮肤等。通过这些感受器收到的信号,然后在脑子里建立 各种模型,也就是你的内心世界、精神世界。(你的世界观、价值观,对事物的看法,对事情的回忆等等) 世界是复杂的,人类只能通过有限的感官来认识世界,也可以通过机器(如雷达、电子显微镜、望远镜、电磁探测仪等)来拓宽认知的途径。也就是为啥物理理论不断变革,亚里士多德-&amp;amp;amp;gt;伽利略和牛顿-&amp;amp;amp;gt;爱...
  • -未来世界的幸存者- 读后感(现实篇和职业篇)
  • 智能工厂4.0:数字世界和物理世界的融合【附下载】
Global site tag (gtag.js) - Google Analytics