`
san_yun
  • 浏览: 2639165 次
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

使用libmemcached提速memcached的操作

 
阅读更多

libmemcached 是一个基于C/C++实现的memcached client library,memcached gem 给这个library提供了ruby封装,根据原作者的性能评测,它比目前常用的memcache-client gem最多要快150倍

因为对memcache的操作在rails处理整个http请求中所占时间比例并不多,而且JavaEye网站大部分是做cache读取操作,于是做了2个试验测试一下2者对于提升整个网站的性能到底有多少帮助:
1. 测试访问JavaEye网站的首页,在这个请求中只有一个缓存读取操作,使用ab简单地跑单次请求10000次:
使用memcache-client,平均完成每个请求是9.247 ms
使用memcached,平均完成每个请求是8.982 ms

对于整体性能提升在3%左右

2. 测试访问某个论坛版面的页面,整个请求有超过60次的缓存读取操作,使用ab简单跑单次请求1000次:
使用memcache-client,平均完成每个请求是95.872 ms
使用memcached,平均完成每个请求是91.591 ms

对于整体性能提升在5%左右

从试验可以看出,对于整体性能还是有一定提高的。JavaEye用的cache插件是cache_fu,它只支持memcache-client,不过通过简单的修改就可以支持这个新gem,我提交了一个补丁,有兴趣的话可以从这里下载到补丁

--分割线--
cache_fu的作者已经将这个补丁添加到代码树,可以从github checkout:  http://github.com/defunkt/cache_fu/tree/master

分享到:
评论

相关推荐

    php-memcached, 基于libmemcached库的memcached扩展.zip

    php-memcached, 基于libmemcached库的memcached扩展 插件生成状态 描述这是的扩展,使用libmemcached库连接到memcached服务器。是一种性能高。分布式内存对象缓存系统,一般用于在加速数据库负载的情况下加速动态web...

    linux版本下memcached+libmemcached

    包含提供的代码示例,了解如何使用Libmemcached API进行增删改查操作。通常,这些示例会展示如何连接到Memcached服务器,设置键值对,获取数据,以及删除缓存项。 6. **配置和优化** 根据需求调整Memcached的配置...

    libmemcached-1.0.17.tar.gz

    libmemcached的设计目标是提供高效、灵活且易于使用的接口,支持Memcached服务器的多种功能,包括分布式哈希、一致性哈希、ketama一致性策略等。它还具有自动序列化和反序列化、连接池管理、智能缓存失效策略等功能...

    libmemcached-0.34.tar.gz

    它提供了丰富的API,支持多种数据结构和操作,使得开发人员可以高效地在应用程序中使用Memcached服务,从而提高性能和减少数据库负载。 **Memcached** Memcached是一款高性能的、分布式的内存对象缓存系统,广泛...

    libmemcached

    1. **键值对操作**:libmemcached 提供了丰富的函数接口,用于设置、获取、删除和检查 memcached 服务器中的键值对。 2. **分布策略**:通过一致性哈希(Consistent Hashing)等算法,libmemcached 可以将数据智能...

    libmemcached-0.42.tar.gz

    开发人员可以通过libmemcached提供的API来实现与Memcached服务器的交互,例如设置和获取键值对、删除数据、检查是否存在等操作。在PHP中,memcached扩展提供了面向对象的接口,使得在PHP中使用Memcached变得更加简单...

    windows 版本libmemcached运行库及相关头文件

    当你的程序调用libmemcached的函数时,操作系统会通过这个DLL文件找到并执行相应的代码。为了在Windows上运行使用libmemcached编译的程序,你需要将`libmemcached.dll`放在系统的PATH环境变量指定的目录下,或者与你...

    memcached全套安装资料,memcached库,libevent库, C/C++ memcached 客户端库:libmemcached

    memcached 安装文件,libevent库, C/C++ memcached 客户端库:libmemcached 全套工具:libevent-1.3.tar.gz,memcached-1.2.2.tar.gz,libmemcached-0.42.tar.gz 测试通过的

    决战Nginx:技术卷 - 高性能Web服务器部署与运维.z01(3-3)

    使用了uWSCGI服务器 并且详细讲述了它的协议和使用 通过8个实例讲述了在不同情况下的使用 例如Django框架 还有Python的三种客户端:python memcached cmemcache和libmemcached 同样 以Perl Java 以Tomcat应用服务器...

    决战Nginx:技术卷 - 高性能Web服务器部署与运维.z02(3-2)

    使用了uWSCGI服务器 并且详细讲述了它的协议和使用 通过8个实例讲述了在不同情况下的使用 例如Django框架 还有Python的三种客户端:python memcached cmemcache和libmemcached 同样 以Perl Java 以Tomcat应用服务器...

    batcache和memcached.zip

    "memcached-is-your-friend.zip"可能包含有关如何配置和使用memcached以优化WordPress的文档或教程,这在实际部署中非常有用。而"memcached.3.0.2.zip"则是memcached服务端的源码,版本为3.0.2,安装并运行后,可以...

    windows下libmemcached

    标题"windows下libmemcached"指的是在Windows操作系统环境下,针对libmemcached这个库的使用。libmemcached是一个C语言编写的、轻量级的、分布式的内存对象缓存系统,它主要用于存储和检索数据,提高应用程序的性能...

    php-memcached:基于libmemcached库的memcached扩展

    建立状态描述这是扩展,使用libmemcached库连接到memcached服务器。 是一种高性能的分布式内存对象缓存系统,本质上是通用的,但旨在通过减轻数据库负载来加速动态Web应用程序。建筑$ phpize$ ./configure$ make$ ...

    libmemcached使用、测试及修改用例

    libmemcached源码修改,以支持memcached dead server的“快速”自动隔离和超时自动重连; 在网络上查找了很久,基于C/C++的使用例子很少且简单,也并不能支持dead server的自动隔离和自动重连(源码存在些许“瑕疵...

    memcached-2.1.0.tgz

    5. **PHP memcached扩展** - 使用libmemcached库,支持更多高级特性,如二进制协议、SASL认证等,适合需要这些特性的场景。 6. **PHP memcache扩展** - 较老的版本,不支持一些新特性,但是可能在某些旧系统或简单...

    libmemcached-win-yshurik-win.rar

    libmemcached是一款高效的C语言库,专为在分布式内存存储系统中操作键值对而设计,最常用于与Memcached服务器交互。这个压缩包“libmemcached-win-yshurik-win.rar”包含了适用于Windows平台的libmemcached源码以及...

    memcached客户端文件及服务端

    在C++中,你可以使用以下基本步骤来连接和操作Memcached: 1. 引入库:`#include <libmemcached/memcached.h>` 2. 初始化:`memcached_st *mem = memcached_create(NULL);` 3. 连接:`memcached_server_push(mem, ...

    memcached-1.0.2.tgz

    1. `memcached`扩展:这是基于libmemcached库的,提供了更多的功能,如SASL认证支持,多线程操作,以及更丰富的数据类型支持。此外,它还支持最新的Memcached协议。 2. `memcache`扩展:它是较早的版本,依赖于...

Global site tag (gtag.js) - Google Analytics