`
varsoft
  • 浏览: 2504361 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[转]memcache_engine + memcachedb = 高性能分布式内存数据库

阅读更多

memcache_engine + memcachedb = 高性能分布式内存数据库

来源:http://robbin.iteye.com/blog/158275
作者:robbin
memcachedb是一个由新浪网的开发人员开放出来的开源项目,给memcached分布式缓存服务器添加了Berkeley DB的持久化存储机制和异步主辅复制机制,让memcached具备了事务恢复能力、持久化能力和分布式复制能力,非常适合于需要超高性能读写速度,但是不需要严格事务约束,能够被持久化保存的应用场景,例如memcachedb被应用在新浪博客上面。

memcachedb给memcached添加了一些数据库才具备的特性,但是我们还不能说memcachedb已经是一个数据库了,这是因为memcached不支持内存对象的遍历操作,当然更加不能支持复杂的查询操作,只能支持根据已知的key去查询对应的value。因此如果想把memcachedb当成一个高性能的分布式内存数据库来使用的话,查询的问题就没有办法解决,只能在应用程序里面配合其他方案做一些折衷。

然而memcached的另外一个开源项目完美的填补了这一个缺陷,就是memcache_engine

memcache_engine是一个MySQL数据库的存储引擎,目前只支持MySQL5.1数据库,他能够把memcachedb作为MySQL数据库的一个存储引擎和MySQL集成起来,让用户通过标准的SQL查询语句访问memcachedb中存放的数据,请看如下示例:

CREATE TABLE `a` (
    `a` int(11) NOT NULL DEFAULT '0',
    `b` int(11) DEFAULT NULL,
    `c` int(11) DEFAULT NULL,
    PRIMARY KEY (`a`)
    ) ENGINE=MEMCACHE DEFAULT CHARSET=latin1
CONNECTION='localhost:6666\;localhost:6688';


创建表a,存放在分布式memcached server:localhost:6666和localhost:6688当中。然后我们就可以使用标准的SQL语句随意的进行CRUD操作去使用memcachedb了,这实在是太酷了!有了memcache_engine,我们就可以用SQL去访问memcached,有了memcachedb,我们就不必担心数据丢失问题,事务恢复问题了,简直是绝配,让memcached真正成为了一个高性能的分布式数据库系统了。目前memcache_engine项目还是早期试验阶段,让我们期待memcache_engine项目早日发布正式版本吧!

顺便多说几句:最近一年来,特别是最近一个月以来,围绕memcached的开源项目发展的非常非常活跃:

1、最近刚刚发布了memcached的新的高性能C客户端接口: libmemcached

2、由于有了libmemcached,该组织又发布了memcache_engine存储引擎,cool!

3、由于libmemcached的发布,不到一周时间,ruby的两个崭新的memcache client就问世了,他们是CaffeineNew memcache-client,让ruby访问memcached的速度大幅度提高,请看:libmemcached发布了,ruby访问memcached提速20倍

4、memcachedb发布了,这是中国的互联网公司贡献的开源项目

以上几个项目都是在2008年1月发布的,真的不是一般的繁荣阿。再加上之前发布的新的支持异步访问的Java Memcached API和C#接口,可以说除了Python,其他主流非主流编程语言都可以使用memcached了。其实即便是Python还没有公布出来的开源接口,我们也知道国内的web2.0网站豆瓣就是使用Python访问memcached,并且支持了极大的访问量,因此目前围绕memcached的开源项目发展的情况非常的繁荣。

memcached最近两年这么受欢迎,其实和互联网web2.0的流行有很大的关系,web2.0网站通常需要个性化页面,依赖于页面局部和数据细颗粒度的缓存来提升性能,并且web2.0网站流量都很大,因此memcached这种高性能分布式缓存服务器就大行其道了。

当然我觉得最具有革命意义的还是memcache_engine和memcachedb这两个项目的发布,他们能够让memcached的用途不仅仅限于缓存服务器而已,而是能够真正充当分布式数据库来使用了,这无异是诸多大流量web2.0网站和开发人员的福音阿。

分享到:
评论

相关推荐

    memcache_engine-0.7.tar.gz

    Memcache_engine-0.7.tar.gz 是一个专为 MySQL 5.1 数据库设计的存储引擎扩展,它的出现旨在提升数据库性能,特别是对于那些需要快速读取和写入大量数据的应用场景。这个存储引擎借鉴了广泛使用的缓存系统 Memcached...

    各种版本 PHP memcache_dll .zip

    Memcached是一种高性能、分布式内存对象缓存系统,用于在动态应用中减轻数据库负载,通过将数据存储在内存中来加快读取速度。在本压缩包中,你将找到不同版本的PHP Memcache DLL文件,这适用于那些需要与Memcached...

    apache+jk+memcache+nginx分布式网站建设笔记

    Memcache是一种高性能的分布式内存对象缓存系统,用于加速动态Web应用,减少数据库负载。其安装过程包括编译libevent库、安装memcached服务,并配置相应的jar包以支持session管理。 #### Nginx的角色 Nginx是一款高...

    Windows_Memcache安装(XAMPP+Memcache+PHP)

    Memcache是一种高性能的分布式内存对象缓存系统,主要用于加速动态Web应用程序并减轻数据库负担。该系统维护了一个巨大的hash表,存在于内存中,用于存储各类格式的数据,如图像、视频、文件、数据库检索结果等。...

    memCached学习

    MySQL Memcache_engine的安装...Memcache_engine是一个MySQL 5.1数据库的存储引擎,它能够让用户通过标准的SQL语句(SELECT/UPDATE/INSERTE/DELETE)访问Memcached(还支持新浪的Memcachedb、dbcached)中存放的数据。

    PyPI 官网下载 | memcache_lock-0.0.3.tar.gz

    `memcached`是一种高性能、分布式的内存对象缓存系统,常用于减轻数据库负载,提升Web应用性能。在分布式环境中,多个服务器可能同时访问共享资源,这就需要一种机制来确保同一时刻只有一个进程可以对资源进行操作,...

    memcache_cache_handler.php for smarty 示例代码

    3. **Memcache**:Memcache是一个高性能、分布式的内存对象缓存系统,能够存储键值对数据。它不是持久化的,但速度极快,适合存储临时性数据,如网页内容、查询结果等。 4. **`memcache_cache_handler.php` 的作用*...

    php_memcache_dll-for-php-5.3

    Memcache是一款高性能的分布式内存对象缓存系统,用于在动态应用中减少数据库负载,提升性能。它的工作原理是将数据存储在内存中,避免了反复读取硬盘上的数据,从而提高了数据访问速度。Memcache支持多种编程语言,...

    php_memcache 服务扩展

    $memcache = new Memcache; $memcache->connect("localhost",11211); echo "Server's version: " . $memcache->getVersion() . "\n"; $tmp_object = new stdClass; $tmp_object->str_attr = "test"; $tmp_object->...

    memadmin+php_memcached+memcached1.4.5

    Memcached是一款高性能、分布式内存对象缓存系统,广泛应用于减轻数据库负载,提高Web应用速度。它的工作原理是将数据存储在内存中,通过键值对的形式提供快速访问。Memcached 1.4.5是一个较旧的版本,发布于2010年...

    内存数据库介绍资料.ppt

    除了商业产品,还有开源的内存数据库,如FastDB、MemcacheDB和Dbcached,以及基于memcache和BerkeleyDB开发的分布式缓存系统。 总结来说,内存数据库是现代高并发、实时需求强烈场景下的理想选择。它们通过牺牲存储...

    php5.5.38_memcache_windows扩展

    这个扩展使得PHP开发者能够利用Memcache这种高性能的分布式内存对象缓存系统来提升网站或应用程序的性能。Memcache是一个广泛使用的开源软件,它能够存储数据,包括动态网页内容,从而减少数据库的负载,提高数据...

    memcache_php使用测试

    **memcache**模块作为高效内存缓存的守护进程,提供了程序式和面向对象的接口,尤其在设计动态Web程序时,它能够显著减少对数据库的直接访问,从而提升应用性能。此外,memcache还支持通信对话(session_handler)的...

    php_memcache.dll Or php_opcache.dll For PHP5.3.27

    PHP5.3.27 的扩展 php_memcache.dll Or php_opcache.dll 测试平台:Windows 2008 R2 x64 (IIS7.5 FastCGI,Apache2.2.23,Apache2.4.3, Nginx 1.2.9) 包含 Non Thread Safe 和 Thread Safe 如果用的是 FastCGI 请...

    memcache使用手册

    Memcache 是一种高性能的内存键值缓存,它可以为应用程序提供高速的数据访问。Memcache 服务可以通过应用程序的多个实例访问该缓存, Memcache 对于那些不需要数据库的永久性功能和事务功能的数据很有用,例如临时...

    php_memcache.dll+5.2+5.3

    Memcache作为一个分布式内存对象缓存系统,广泛应用于减轻数据库负载,加速数据访问。而`php_memcache.dll`则是PHP与Memcache交互的桥梁,它是一个动态链接库,允许PHP脚本通过PHP语言直接操作Memcache服务。本文将...

    php5.5.12 memcache_dll

    它通过在内存中缓存数据来减少对数据库的访问,从而提升网站的响应速度。 描述中的“php5.5-ts-vc11-x64”提供了关于PHP安装包的更多信息。具体来说: 1. **PHP 5.5.12**:这是PHP的版本号,发布于2014年8月,属于...

    memcache软件和+教程

    Memcache是一种高性能的分布式内存对象缓存系统,常用于减轻数据库负载,提高Web应用的响应速度。它将数据存储在内存中,以便快速检索,从而实现了数据的高速访问。本教程将详细介绍Memcache的基本概念、安装与配置...

    Nginx+Memcache+Linux+Tomcat集群

    在构建高性能的Web服务环境中,...总结来说,Nginx+Memcache+Linux+Tomcat集群通过合理利用资源,实现了Web服务的高性能、高可用性和可扩展性。这种架构在处理大量并发请求时表现出色,是现代互联网服务的常见选择。

    win7安装配置memcache+php_.docx

    标题中的“win7安装配置memcache+php”指的是在Windows 7操作系统上安装并配置Memcache,一个内存对象缓存系统,以及将其与PHP环境整合的过程。描述中提到的“分布式缓存”是指Memcache可以在多台服务器之间共享数据...

Global site tag (gtag.js) - Google Analytics