Redis的一个非常大优点就是能够不用整个转入到这个数据库,而是能够沿用之前的MySQL等数据库,而仅在一些特定的应用场景通过Redis的特性提高效率。本文列出了11个这种Web应用场景,如显示最新的项目列表、删除和过滤、排行榜等相关需求。

【51CTO精选译文】在“怎样让Redis在你的系统中发挥作用”一文中,Salvatore 'antirez’ Sanfilippo告诉我们怎样利用Redis独有的数据结构处理能力来解决一些常见问题。一些Redis原语命令比方LPUSH、LTRIM和LREM等等可以用来帮助开发人员完毕须要的任务——这些任务在传统的数据库存储中很困难或缓慢。这是一篇很实用而且实际的文章。那么要怎样在你的框架中完毕这些任务呢?

以下列出11种Web应用场景,在这些场景下能够充分的利用Redis的特性,大大提高效率。

1.在主页中显示最新的项目列表。

Redis使用的是常驻内存的缓存,速度很快。LPUSH用来插入一个内容ID,作为keyword存储在列表头部。LTRIM用来限制列表中的项目数最多为5000。假设用户须要的检索的数据量超越这个缓存容量,这时才须要把请求发送到数据库。

2.删除和过滤。

假设一篇文章被删除,能够使用LREM从缓存中彻底清除掉。

3.排行榜及相关问题。

排行榜(leader board)依照得分进行排序。ZADD命令能够直接实现这个功能,而ZREVRANGE命令能够用来依照得分来获取前100名的用户,ZRANK能够用来获取用户排名,很直接并且操作easy。

4.依照用户投票和时间排序。

这就像Reddit的排行榜,得分会随着时间变化。LPUSH和LTRIM命令结合运用,把文章加入到一个列表中。一项后台任务用来获取列表,并又一次计算列表的排序,ZADD命令用来依照新的顺序填充生成列表。列表能够实现非常高速的检索,即使是负载非常重的网站。

5.过期项目处理。

使用unix时间作为keyword,用来保持列表可以按时间排序。对current_time和time_to_live进行检索,完毕查找过期项目的艰巨任务。还有一项后台任务使用ZRANGE...WITHSCORES进行查询,删除过期的条目。

6.计数。

进行各种数据统计的用途是非常广泛的,比方想知道什么时候封锁一个IP地址。INCRBY命令让这些变得非常easy,通过原子递增保持计数;GETSET用来重置计数器;过期属性用来确认一个keyword什么时候应该删除。

7.特定时间内的特定项目。

这是特定訪问者的问题,能够通过给每次页面浏览使用SADD命令来解决。SADD不会将已经存在的成员加入到一个集合。

8.实时分析正在发生的情况,用于数据统计与防止垃圾邮件等。

使用Redis原语命令,更easy实施垃圾邮件过滤系统或其它实时跟踪系统。

9.Pub/Sub。

在更新中保持用户对数据的映射是系统中的一个普遍任务。Redis的pub/sub功能使用了SUBSCRIBE、UNSUBSCRIBE和PUBLISH命令,让这个变得更加easy。

10.队列。

在当前的编程中队列随处可见。除了push和pop类型的命令之外,Redis还有堵塞队列的命令,可以让一个程序在运行时被还有一个程序加入到队列。你也可以做些更有趣的事情,比方一个旋转更新的RSS feed队列。

11.缓存。

Redis缓存使用的方式与memcache同样。

网络应用不能无休止地进行模型的战争,看看这些Redis的原语命令,虽然简单但功能强大,把它们加以组合,所能完毕的就更无法想象。当然,你能够专门编写代码来完毕全部这些操作,但Redis实现起来显然更为轻松。

原文:11 Common Web Use Cases Solved In Redis

Redis11种Web应用场景的更多相关文章

  1. Redis 11种Web应用场景举例

    在"怎样让redis在你的系统中发挥作用"一文中,salvatore 'antirez' sanfilippo告诉我们如何利用redis独有的数据结构处理能力来解决一些常见问题.一 ...

  2. Redis能干啥?细看11种Web应用场景

    下面列出11种Web应用场景,在这些场景下可以充分的利用Redis的特性,大大提高效率. 1.在主页中显示最新的项目列表. Redis使用的是常驻内存的缓存,速度非常快.LPUSH用来插入一个内容ID ...

  3. Redis能干啥?细看11种Web应用场景[转]

    下面列出11种Web应用场景,在这些场景下可以充分的利用Redis的特性,大大提高效率. 1.在主页中显示最新的项目列表. Redis使用的是常驻内存的缓存,速度非常快.LPUSH用来插入一个内容ID ...

  4. 几种web字体格式

    目前,文字信息仍是网站最主要的内容,随着CSS3技术的不断成熟,Web字体逐渐成为话题,这项让未来Web更加丰富多彩的技术拥有多种实现方案,其中之一是通过@font-face属性在网页中嵌入自定义字体 ...

  5. 四 主要的几种 Web 服务器

    一 Microsoft IIS 1. 仅支持 Windows 操作系统,用于 .Net 平台网站的部署和运行. 2. IIS 是一种 Web 服务组件,包括括 Web 服务器.FTP 服务器.NNTP ...

  6. 常见的三种Web服务架构

    常见的三种Web服务架构 转自http://www.cnblogs.com/bvbook/archive/2008/12/24/1360942.html 相互竞争的服务架构 The Competing ...

  7. Java中常见的5种WEB服务器介绍

    这篇文章主要介绍了Java中常见的5种WEB服务器介绍,它们分别是Tomcat.Resin.JBoss.WebSphere.WebLogic,需要的朋友可以参考下 Web服务器是运行及发布Web应用的 ...

  8. 【转】浅谈常用的几种web攻击方式

    浅谈常用的几种web攻击方式 一.Dos攻击(Denial of Service attack) 是一种针对服务器的能够让服务器呈现静止状态的攻击方式.有时候也加服务停止攻击或拒绝服务攻击.其原理就是 ...

  9. SSD固态盘应用于Ceph集群的四种典型使用场景

    在虚拟化及云计算技术大规模应用于企业数据中心的科技潮流中,存储性能无疑是企业核心应用是否虚拟化.云化的关键指标之一.传统的做法是升级存储设备,但这没解决根本问题,性能和容量不能兼顾,并且解决不好设备利 ...

随机推荐

  1. Swift - 文本输入框内容改变时响应,并获取最新内容

    1,问题描述 有时我们开发的时候需要先把“确认”按钮初始设置为不可用,当文本框中输入文字以后,再将输入按钮变为可用. 2,实现原理 (1)要检测文本框内容的变化,我们需要让新界面的Controller ...

  2. Xamarin.forms 自定义dropdownview控件

    一 基本说明 想用xamarin做个像美团这样的下拉列表进行条件选择的功能,但是但是找了半天好像没有现成的,也没有其他类似的控件可以走走捷径,再则也没有找到popwindow之类的东东,这里只好使用s ...

  3. Nubia Z5S 基于官方H207/4.4内核的Mokee4.4.4 RC3.2 (2014.7.31修复呼吸灯(能亮依旧不能呼吸))

    特别感谢 yun3195 和 轻描淡写Yhw  帮忙測试 转帖请务必注明本链接地址: http://blog.csdn.net/syhost/article/details/36444259 此ROM ...

  4. c# listview导出excel文件

    首先在工程中需要添加对Microsoft Excel office 11.0 object的引用 生成excel的类代码如下 using System; using System.Collection ...

  5. sql server 2012 数据库还原方法

    USE master RESTORE DATABASE WSS_Content FROM DISK = N'D:\bak\contentbak.bak' WITH REPLACE, NORECOVER ...

  6. 《转》MFC网络编程学习

    原地址:http://www.cnblogs.com/renyuan/archive/2013/06/04/3117006.html要学习好网路编程,主要看以下几个方面: 1.掌握概念,诸如:同步(S ...

  7. perl 访问网站一些useragent的设置

    121.40.205.143 - - [22/Jun/2016:12:56:23 +0800] "GET /wechat/account.html HTTP/1.1" 200 34 ...

  8. 新闻专栏~ART让Android更流畅

    潘鹏在CSDN上原创,如其它站点转载请注意排版和写明出处: ART.Android新的内存垃圾回收机制 ART的优点:代码加载速度加快----编译次数降低 Android的卡顿是由于内存垃圾回收机制. ...

  9. Codeforce 143B - Help Kingdom of Far Far Away 2

    B. Help Kingdom of Far Far Away 2 time limit per test 2 seconds memory limit per test 256 megabytes ...

  10. TR90眼镜_百度百科

    TR90眼镜_百度百科 TR90眼镜