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. PHP之操作数据库

    数据库,顾名思义,是一个存放数据的容器.然后在使用过程中对数据库里面的数据增删改查,具体是怎么实现的呢? 这儿不得不提一下一个神奇的东西:SQL语句:结构化查询语言(Structured Query ...

  2. 用js实现插入排序

    话不多说,直接上代码 html源码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  3. 【Demo 0004】屏幕、窗体及视图基础知识

    本章学习要点       1.  了解iOS中应用程序(UIApplication)与屏幕.窗体以及视图相关基础知识:       2.  掌握应用程序常用的属性与方法:        3.  掌握窗 ...

  4. Spring MVC 数据验证——validate注解方式

    1.说明 学习注解方式之前,应该先学习一下编码方式的spring注入.这样便于理解验证框架的工作原理.在出错的时候,也能更好的解决这个问题.所以本次博客教程也是基于编码方式.仅仅是在原来的基础加上注解 ...

  5. hdu 4708 Rotation Lock Puzzle 2013年ICPC热身赛A题 旋转矩阵

    题意:给出一个n*n的矩阵,旋转每一圈数字,求出对角线可能的最大值,以及转到最大时的最小距离. 只要分析每一层就可以了,本来想用地址传递二维数组,发现行不通,改了一下就行了. 这里有个坑,比如: 1 ...

  6. IE6_一些简单bug

    1.IE6调整窗口大小的 Bug 当把body居中放置,改变IE浏览器大小的时候,任何在body里面的相对定位元素都会固定不动了.给body定义position:relative;就行了. 2.避免百 ...

  7. WPF入门介绍

    Windows Vista已经于2007年1月30正式发行零售版本,安装Vista的计算机将会大量出现.在Vista时代,身为编程员,就一定要具备Vista桌面应用开发的能力.而开发Vista桌面应用 ...

  8. android studio 9.png 报错

    Eclipse里能正常运行,但是导入到Android Studio里就报如下的错误 百度了下,说有两种解决办法一种是改后缀名,还有一种是重新在Android Studio里画一下点9图片.但是这个项目 ...

  9. (2)入门指南——(7)添加jquery代码(Adding our jQuery code)

    Our custom code will go in the second, currently empty, JavaScript file which we included from the H ...

  10. c++实用技巧

    原地址:http://www.cnblogs.com/easymind223/articles/2576904.html 晚上的时间总是习惯性的在cnblogs逛街,今天又看到了好文章,其c++味道浓 ...