阅读更多

21顶
0踩

编程语言

原创新闻 最新Rails缓存插件 cache-money

2008-12-12 14:00 by 见习记者 QuakeWang 评论(6) 有8257人浏览
在过去的几年中Twitter一直被视为Rails应用的代表作,在一段时间内还曾因为网站性能不佳,常被拿来作为"Rails无法扩展的"典型例子,但是现在Twitter的性能问题已经解决,它开始回馈一些解决方案给Rails社区了。

cache-money是Twitter最近贡献一个缓存插件,和常见的cache plugin不同,它提供的是write-through的缓存模式:在ActiveRecord对象更新的时候不是将缓存中的数据清除,而是直接将更新的内容写入到缓存中去。可以参考这篇文章 http://magicscalingsprinkles.wordpress.com/2008/11/24/write-through-cacheing-is-an-essential-part-of-a-healthy-scaling-strategy/
cache-money有许多很棒的特性:
1. 缓存自动清除机制(利用after_save/after_destroy)
2. 支持事务,由于rails的Active Record没有提供after_commit机制,目前常见的缓存插件在高并发下会出现缓存更新竞争冲突,而这个特性对于解决这个问题会很有帮助:
CACHE.transaction do
  CACHE.set(k, v)
  raise
end

3. 支持非主键的缓存,对于一些常用的非主键查找,比如根据用户名找用户,很有帮助:
class User
  index :name
end

User.find_by_name "javaeye"


更多的特性请参考这篇博客:http://magicscalingsprinkles.wordpress.com/2008/12/11/introducing-cache-money/
目前它处于RC版本,你可以从github上check out最新代码:
http://github.com/nkallen/cache-money/tree/master
21
0
评论 共 6 条 请登录后发表评论
6 楼 debbbbie 2011-03-29 10:51
好东东,学习了
5 楼 QuakeWang 2008-12-15 12:05
inosin 写道

RC版本,能用于产品环境吗?

它是从Twitter的生产环境剥离出来的插件,质量可以信任
另外你可以看一下它的源代码,得益于ruby语言的动态特性和rails的优良设计,和hibernate的2级缓存大段的代码相比,它非常容易阅读。
4 楼 inosin 2008-12-15 11:58
robbin 写道

这个缓存实现空前强大,接近于Hibernate的缓存功能了,强烈推荐!

RC版本,能用于产品环境吗?
3 楼 Raecoo 2008-12-13 09:45
看起来是个不错的改进
2 楼 kevin_liu 2008-12-12 17:22
这么好的工具~
1 楼 robbin 2008-12-12 14:48
这个缓存实现空前强大,接近于Hibernate的缓存功能了,强烈推荐!

发表评论

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

相关推荐

  • Windows WDM驱动程序开发指南

    Windows WDM设备驱动程序开发指南,PDF版,WDM驱动开发入门必读

  • 《Windows内核编程》---WDM驱动程序的基本结构和实例

    WDM驱动的基本结构: WDM驱动模型是建立在NT式驱动程序模型基础之上的。对于WDM驱动程序来说,一般都是基于分层的,即完成一个设备的操作,至少要由两个驱动设备共同完成。   1)物理设备对象和功能设备对象 物理设备对象(Physical Device Object,PDO)和功能设备对象(Function Device Object,FDO)的关系是“附加”与“被附加”的关系。 当P

  • WDM驱动

    WDM英文Windows Driver Model(WDM)的缩写。 简介 WDM WDM是WINDOWS2000认证的驱动程序,WIN2000由NT发展而来,所以对于设备的支持功能有限,同时为了最大限度的保障稳定性,所以推崇WDM驱动,但同时WDM驱动也就是功能最少的。因为设备厂商开发进度以及微软的态度,可能会禁止某些功能,所以像8738和PCI128D这类声卡在WIN2000中都是不能驱动四声道的。 Windows驱动程序模型(Windows Driver Model,WDM)是Window

  • windows驱动开发4:WDM、WDF等驱动基本概念

    WDM、WDF等驱动基本概念

  • WDM驱动程序设计

    WDM驱动程序设计 作者:汤琳 发布时间:2001/03/14 文章摘要:  现在Windows98和Windows2000已经成了主流操作系统的主流,原先用来实现驱动程序的VxD技术随着Win95的淡出也慢慢地将退出历史舞台,在Windows98和Windows2000中设备驱动程序将根据Windows驱动程序模型(WD

  • windows驱动开发-WDM框架(一)

    在前面的文章中解释过,NT5.0之后windows确定了新的架构Windows Driver Model (WDM),在Vista之后又推出了Windows Driver Framework(WDF),这两个都属于驱动程序框架,那么它们的之间的关系是怎样的?WDF是对WDM进行的封装,是为更快、更简单的进行驱动开发进行的二次封装,故WDM里面的所有概念对于WDF都是适用的,所以理解内核架构可以学习WDM,开发驱动程序则使用WDF框架。

  • 深入学习Windows WDM设备驱动开发指南

    本文还有配套的精品资源,点击获取 简介:《Windows WDM 设备驱动程序开发》资料集深入探讨了在Windows操作系统下开发WDM设备驱动程序的方法,包括了Windows 2000驱动开发大全和WDM设备驱动程序开发指南。资料详细介绍了WDM驱动程序模型,驱动程序的基本概念,以及不同类型的驱动程序如函数驱动、过滤驱动和物理驱动的实现。同时,涵盖了硬件设备驱动程序编写、...

  • WDM式驱动的基本结构

    1.对于WDM驱动程序来说,一般都是基于分层。也就是说,完成一个设备操作,至少要由两个驱动设备共同完成一个是物理设备对象(Physical Device Object)PDO,另一个是功能设备对象(Function Device Object)FDO。关系是附加与被附加的关系。当PC插入某个设备的时,PDO会自动创建。确切的说,是由总线驱动创建的。PDO不能单独操作设备,需要配合FDO一起使用。系

  • WDM驱动程序

    <br />先说下关于WDM驱动程序一些原理。Windows2000后,微软加入了新的驱动程序模型,就是WDM。在WDM中,完成一个设备的操作,至少有两个设备共同完成。其中,一个是物理设备对象PDO,另一个是功能设备对象FDO。两者的关系是"附加"和"被附加"的关系。当PC插入某个设备时,总线驱动程序创建PDO,而设备的驱动程序创建FDO,并附加到PDO上。当FDO附加到PDO上时,PDO设备对象的子域AttachedDevice会记录FDO的位置,而FDO可以通过定义设备扩展来记录FDO下层设备,如PDO

  • WDM驱动程序介绍(引)

    http://zhidao.baidu.com/question/56715021.html WDM(Windows driver model)是微软为开发人员提供的一种编写运行在Windows平台下新硬件驱动程序的有效方法,此即所谓的Windows驱动程序模型。WDM提供了设备类(device classes),由此形成的源代码可以运行在各类Windows平台:Win XP/2000/Me/9...

  • 创建一个基础WDM驱动,并使用MFC调用驱动

    首先参考文章:如何使用WinDbg和Virtual Box进行Windows驱动debug,搭建开发环境。创建一个Empty WDM项目,在solution下添加一个MFC项目: 其中FirstDriver是一个简单的WDM驱动项目,而App是一个MFC程序,用于调用驱动。Source.c是驱动源码: 程序完成了几项工作:MFC应用程序 界面: 一共4个按钮,分别执行device open/close,以及通过IO发送和接收数据。 需要注意的是,这里要使用DeviceIoControl函数用于和devi

  • 35、PCI设备驱动简介

    PCI(Peripheral Component Interconnect)总线标准是一种将系统外部设备连接起来的总线标准,速度可以达到133MB/s,它是PC中最重要的总线,其他总路线如ISA总线,USB总线等,都挂载在PCI总线上(通过桥接电路)。由Intel推出的一种局部总线,为32位数据地址总线,可以扩展为64位,支持突发读写,及多组外围设备。 在PCI系统中,Host/PCI称为北...

  • WinCE CEDDK之IO访问函数

    作者:ARM-WinCE CEDDK就是CE的DDK,其中封装了一些驱动开发会用到的函数。有时在开发驱动的时候用CEDDK中的函数会比较方便,使用的时候需要连接ceddk.dll,源代码为于WinCE的/PUBLIC/Common/Oak/Drivers/CEDDK下面找到,其中大致可以分为几类,如下:    IO访问函数(ddk_io.c)    DMA操作函数(ddk_dma.

  • 一个简单的WDM驱动例子

    一个简单的WDM驱动例子,包括驱动和用户模式的调用测试。(例子来自于《windows驱动开发技术详解》,只是稍微做了一些改变)

  • wdm驱动-过滤驱动

    wdm驱动,包括功能驱动和附在它上面的过滤驱动(上层过滤驱动)。一个很简单的例子。

  • 从PC总线的发展看设备驱动程序的发展

    硬件工程师学驱动系列文章之一:从PC总线的发展看设备驱动程序的发展

Global site tag (gtag.js) - Google Analytics