`
CharlesCui
  • 浏览: 431049 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Ruby下Memcached两个客户端的对比

阅读更多
代码:

require "rubygems"
require 'eventmachine'
require "benchmark"
require "memcache"

cache_proc = proc{|cache,n|
  proc{
    n.times do |t|
      cache.set "a", 'hello'
      cache.set "b", 'hi'
      cache.set "c", 'how are you?'
      cache.set "d", ''

      # => EM client's get() must require a block,nnd.
      cache.get("a"){}
      cache.get("missing"){}
      cache.set("missing", 'abc')
      cache.get("missing"){}
      cache.delete("missing")
      cache.get("missing"){}
    end
    }
  }

# => memcache-client v1.7.0
cache_client = MemCache.new('localhost:10001')

# => Eventmachine Memcache Protocol
EM.run{
    cache_em = EM::P::Memcache.connect 'localhost', 10001
    Benchmark.bmbm do |x|
      x.report('EM',&cache_proc.call(cache_em,10000))
      x.report('memcache-client',&cache_proc.call(cache_client,10000))
    end
  }


测试结果:

引用
Rehearsal ---------------------------------------------------
EM                4.350000   0.140000   4.490000 (  4.532573)
memcache-client  34.970000   5.760000  40.730000 ( 42.958925)
----------------------------------------- total: 45.220000sec

                      user     system      total        real
EM               12.030000   0.180000  12.210000 ( 12.330900)
memcache-client  57.510000   6.220000  63.730000 ( 65.870205)


Eventmachine要比Memcache-client快好多啊,这个基于反射模型的中间件可以好好的发掘下潜力了.
1
0
分享到:
评论

相关推荐

    memcached服务端已经多个客户端

    标题"memcached服务端已经多个客户端"指出我们关注的是memcached缓存系统,它包括服务端和多个客户端。这通常意味着我们可以期待一个完整的环境,用于学习、测试或部署memcached,包括服务器组件以及可以与其交互的...

    memcached客户端

    每个客户端库都实现了基本的Memcached操作,如`get`、`set`、`delete`和`increment/decrement`。此外,它们还可能提供额外的功能,如连接池管理、持久化连接、事务支持、键的过期策略等。在选择客户端时,应考虑其...

    linux版本下memcached+libmemcached

    本文将详细介绍这两个组件以及如何在Redhat 5系统上配置和使用它们。 **Memcached** Memcached是一款高性能、分布式内存对象缓存系统。它设计用于加速动态Web应用,通过在内存中存储数据和对象来减少数据库访问,...

    memcached安装包

    在这个压缩包中,我们有两个文件,分别是针对64位系统的`memcached-win64-1.4.4-14.zip`和针对32位系统的`memcached-win32-1.4.4-54.zip`。 1. **Memcached的介绍** Memcached最初由Danga Interactive开发,后来...

    Memcached.pdf Memcached.pdf

    - Memcached 以守护程序的方式运行在一个或多个服务器上,始终准备接收客户端的连接请求。 2. **基于 key 的数据存储:** - 每个存储在 Memcached 中的对象都有一个唯一的标识符 key,所有的数据存取操作都通过这...

    memcached windows资源 32位, 64位下载

    这两个版本分别适用于不同架构的Windows操作系统,32位版本适用于32位操作系统,而64位版本则适用于64位操作系统。 **安装步骤** 1. **下载**: 首先,你需要从官方网站或可信的第三方源下载适合你系统架构的...

    memcached1.5.6.rar

    4. **接口支持**:memcached提供多种语言的客户端库,如PHP、Python、Java、Ruby等,方便开发人员在各种编程环境中使用。 5. **Windows安装**:在Windows上,通常通过下载编译好的二进制文件进行安装,包括64位和32...

    MemCached安装

    使用Homebrew安装这两个库: ``` brew install libevent brew install openssl ``` 3. **下载Memcached源码**:从官方网站或者GitHub仓库下载最新的Memcached源代码。在压缩包文件中,你可能已经有了预打包的...

    memcache memcached-1.2.6-win32-bin

    Memcache和Memcached是两种广泛使用的分布式内存缓存系统,它们在处理高并发Web应用程序时,可以极大地提高数据访问速度,降低数据库负载。标题中的"memcache memcached-1.2.6-win32-bin"可能指的是一个针对Windows ...

    memcached入门文档

    - **Python** Python社区维护了pylibmc和python-memcached两个客户端库,方便Python应用与Memcached交互。 - **Ruby** Ruby提供了dalli gem,它是官方推荐的Ruby客户端,支持多线程和连接池。 - **Perl** Perl社区...

    memcached

    Memcached支持多种编程语言的客户端库,例如PHP、Python、Java、Ruby、C++等,开发者可以方便地在应用程序中集成。以PHP为例,使用`memcache`或`memcached`扩展,可以进行增删查改操作: ```php $memcached = new ...

    数据平台前端缓存技术方案Memcached-Redis.v1.0[汇编].pdf

    数据平台前端缓存技术方案主要涉及两种常用的内存缓存服务:Memcached和Redis。本文将重点解析Memcached的相关知识。 1. **Memcached基础** - **M的概念**:Memcached是一个高性能的分布式内存对象缓存系统,它...

    memcached的安装与配置

    这里以Ruby环境为例,安装`cached_model`和`memcache-client`这两个Gem: ```bash gem install cached_model --no-rdoc --no-ri --with-include-dependencies gem install memcache-client --no-rdoc --no-ri --with...

    分布式缓存系统Memcached学习心得.zip

    Memcached支持多种编程语言的客户端库,如Python、Java、PHP、Ruby等,这使得开发者可以根据项目语言选择合适的客户端。客户端库通常提供简单的API,用于设置、获取和删除缓存中的数据。在实际应用中,我们需要合理...

    memcached32位64位.zip

    文件名"memcached32λ64λ"和"memcached32位64位"可能是两个不同的文件,分别对应32位和64位版本的Memcached安装程序或可执行文件。"λ"可能是因为输入错误,实际应该是"位"的拼音缩写。 **详细知识点:** 1. **...

    memcached-win64-1.4.4

    "2部操作即可"可能是指只需解压文件和执行启动程序两个简单步骤就能运行memcached服务。 **memcached核心知识点** 1. **分布式缓存**: Memcached是一个分布式内存缓存系统,可以跨多台服务器分配数据,减轻单一...

    MemCached.rar

    MemCache和MemCached这两个术语经常被混淆,但它们实际上有些许区别。 MemCache是早期的一个缓存系统,主要用于PHP应用,而MemCached(注意额外的“d”)是由Danga Interactive开发的开源软件,现在更广泛地被使用...

    memcached和TTserver的使用

    - **部署策略**: 对于32位系统,可以考虑在同一台机器上启动多个memcached实例,充分利用内存资源。 - **监控与管理**: 使用telnet或专门的管理工具,可以实时监控和调整memcached的运行状态。 综上所述,...

    memcached.zip

    2. **分布式**:Memcached通过哈希算法将数据分散到多个服务器上,实现数据的分布式存储,解决了单一服务器的内存限制问题。 3. **内存存储**:由于数据存储在内存中,读取速度极快,但数据易失,适合短期存储不常...

    PHP内存缓存功能memcached示例

    客户端通过TCP/IP协议与memcached通信,每个数据对象通过唯一的键(key)进行存取。由于数据存储在内存中,存取速度极快,但缺点是服务重启后数据会丢失。 **五、PHP作为memcached客户端** PHP可以通过两种方式与...

Global site tag (gtag.js) - Google Analytics