阅读更多

11顶
0踩

研发管理

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

2018-04-11 11:19 by 副主编 jihong10102006 评论(3) 有44290人浏览
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 个用法(转)

    nRedis是一个强大的内存数据结构存储,包含数据库,缓存和消息代理等多种用途。大多数人经常认为它不过是一个简单的键值存储,但其实它有更多的能力。下面我将会总结一些Redis可以做的事情的真实例子。?rnrn1.全页面缓存?首先是整页缓存。如果你正在使用服务器端呈现的内容,则不需要为每个单独的请求重新渲染每个页面。使用如Redis这样的缓存,你可以缓存经常请求的内容,从而大大减少请求最多的页面的延...

  • 数据模型——从现实世界到信息世界——再到物理世界(设计数据库的整体思路)

    数据模型是对现实世界数据特征的抽象,说白了就是数据模型是用来描述数据、组织数据、操作数据的。n数据库模型是数据库系统的核心和基础。数据模型分类两类:①概念模型 n也称之为信息模型,它是站在用户的角度来对数据和信息建模的,主要用于数据库设计。 n②逻辑模型和物理模型 n逻辑模型主要包括层次模型、网状模型、关系模型、等。而物理模型是对数据最顶层的抽象。n 为了把现实世界中的具体事务抽象、组织为某一数

  • 现实世界与虚拟世界的差别在哪里

    现实世界与虚拟世界的差别在哪里nn nn nn红朝儒生nn2014-7-15nn nn关键字:现实世界 虚拟世界 信息 无限 有限nn简介:现实世界,与虚拟世界的真正差异,在于现实世界的信息量是无限的。更根本的差异,在于现实世界可以把无限化于有限。nn nn nn  最近看一个动画片,关于电脑游戏方面的。其中有一人问:现实世界与虚拟世界的差别在哪里?吾听了一愣,嗯?这个问题问得有意思。如果虚拟世界...

  • 对象——从现实世界的抽象(*)

    关键词: ? 对象 ? ?抽象 ? ?状态 ? ?映射 ? ?静态rnrnrnrnrn对象和类rnrnrn对象一词,我们可能会联想到一个物体。比如一支笔,一本书,等等。他们都可以称为对象。对象其实就是现实生活中常见的事物,每个事物都可以叫做对象。反过来讲,严格的说对象不能简单的叫做事物,它是对事物的统称。这是广义的对象。rnrnrn在现实世界中,在我们人类的视角下,会对各种事物进行一个分类,比如动

  • 再来给世界建模

  • 虚拟世界可以融入现实世界,但不能取代现实世界。

    rn今天看到了美国MIT Media Lab(麻省理工学院媒体实验室)的天才学生普拉纳夫- (Prarnav Mistry),发明了一项结合实体世界和虚拟世界的科技。rn[url]//www.ifuci.tw/news/12856-Sixth-Sense[/url]rnrn真的很棒,我想未来的趋势就应该这样,也许还可以更先进,通过虚拟世界现实世界的结合是多么的和谐啊。rnrn《未来战...

  • 编程是现实世界的抽象

    在我们的现实世界中,复杂而繁芜。然而,总会有聪明的人将现实世界具有相同特性的特征进行一定程度的抽象总结。这种抽象后的一种理解,能够被运用到各个方面?;髯魑死喔髦只疃姆糯笃?,能够更加方便或者高效的帮助我们完成一定的工作,特别是计算机的出现和快速发展,使人类的计算效率放大了无数倍。随着计算机的产生,编程也应运而生。编程作为一种规范和指引计算机行为的一种语言,能够让计算机按照我们的意愿去完成相应的...

  • https://blog.csdn.net/mjianglei/article/details/52329719

  • 0001从现实对象到数学模型

  • 人工智能第十一章——现实世界的规划与行动

  • 信息的三种世界

    第三讲 信息的三种世界 教师课件搬运,非原创,今后也要好好加油~

  • 游戏世界和小说世界——虚拟与现实人生

  • 浅谈OOP与现实世界之间关系(面向对象的特征)

    面向对象程序设计语言(Object-Oriented Programming ,OOP)是一种用计算机表达现实世界的方式。从现实世界到能用计算机表述过程中抽象无处不在。n对象

  • 虚拟世界现实世界的未来

    基于现有科学技术来认知,虚拟世界现实世界是可以统一的,当然,AR也好,VR也好,VR+AR也好,这些技术都还处于发展的初期,但从科学认知上来说,虚拟世界现实世界实现转换,正如时空转换一样,这都是必然的发展结果。冷核聚变+量子计算+人工智能+仿生学的组合爆发将会彻底改变这个世界,昨天有位朋友说我们是早生了100年,我理解他的意思。因为100年后,按照现在的发展速度,我们是可以成仙的。不过我们也赶

  • 001 | 混合现实 | 把真实世界叠加进虚拟世界 170731

    n n n 第1周讲的产业是混合现实(MR)。(如果是偶然点进来的,还没有看这个文集的“第0篇”,建议移步这里先看几点说明以便更好地消化:【0】读前需知——这个文集的一点说明 )导图:nnnnnn前哨历(“我的今日知识清单”):7月31日1.混合现实(MR)是把现实世界叠加到虚拟世界里的技术。2.协同能力有三个考核标准:规模、复杂度、实时协同能力;依托混合现实技术能够...

  • 一次分不清现实还是梦境的梦

    n n n 做梦有时候会有种分不清梦境还是现实的感觉,在梦中有愉快的冒险旅程,有喜欢的人,梦中的嬉戏打闹,以及之后的和坏人的战斗,自己可以飞天遁地??晌以诿沃惺贾站醯谜媸档淖约壕褪钦庋?,我要赶紧醒来去救我喜欢的人,一直搞不清楚自己是在做梦还是现实,以为中了坏人的幻术。? 一番挣扎,真的醒来了,20秒钟左右,慢慢清醒,emmm...真实的生活没那么刺激,我也没有那么厉...

  • V神新论文:理想很美好,现实很骨感

  • 循环世界模型(Recurrent World Models)——真实世界建模的强化学习利器

    世界模型rn智能体可以在它们头脑中的世界进行学习吗?rn??世界模型(World Model)是NIPS 2018获得口头报告的论文之一,也是谷歌AI和Deepmind 2019年力作深度规划网络 PlaNet的主要参考文献之一。这篇博文是对World Model论文的翻译和学习笔记。原文地址 https://arxiv.org/abs/1803.10122rn摘要rn??我们探索建立通用强化学习环境的生...

  • 什么是可能世界?

    n n n 先讲个非虚构故事!显然,现实世界中的你正在阅读《什么是可能世界》这篇哲学笔记。站在当下,我们可以想象,要么你接下来看懂了、要么你最终没看懂。此刻,我们构造出了3个世界:你正在看但还没看完的「现实世界」、你看了并且看懂了的「可能世界」、你看了却没看懂的「可能世界」。严格来说,这3个世界都是我们可以想象的世界 —— 这种可以被人类理性所构造并理解的世界都是一个...

  • 改写世界现实编辑器:Reality Editor

    本文首发「硬报纸」:有硬度、有深度,智能硬件领域独立思考者当你还在兴趣盎然地玩着用手机APP??乜掌换鞯挠字捎蜗肥?,有人已经做到了用手机控制万物。这就是麻省理工大牛Valentin Heun在MIT Media Lab三年的工作成果,改写物理世界现实编辑器:Reality Editor。nnnnn用手机控制车门貌似没什么稀奇的。然而再往下看……n用手...

Global site tag (gtag.js) - Google Analytics