阅读更多

11顶
2踩

数据库
dbcached是新浪的开发团队最近新发布的一个基于memcached的开源项目:

http://code.google.com/p/dbcached/

dbcached和新浪另外一个开源项目memcached比较像,都是支持memcached协议,利用memcached进行内存缓存的产品。dbcached的架构图:



根据作者的博客介绍:

  ● 兼容:Memcached 能做的,dbcached 都能做。除此之外,dbcached 还将“Memcached、持久化存储管理器、NMDB 客户端接口”在一个程序中结合起来,对任何原有 Memcached 客户端来讲,dbcached 仍旧是个 Memcached 内存对象缓存系统,但是,它的数据可以持久存储到本机或其它服务器上的 QDBM 或 Berkeley DB 数据库中。

  ● 性能:前端 dbcached 的并发处理能力跟 Memcached 相同;后端 NMDB 跟 Memcached 一样,采用了libevent 进行网络IO处理,拥有自己的内存缓存机制,性能不相上下。

  ● 写入:当“dbcached 的 Memcached 部分”接收到一个 set(add/replace/...) 请求并储存 key-value 数据到内存中后,“dbcached 持久化存储管理器”能够将 key-value 数据通过“NMDB 客户端接口”保存到 QDBM 或 Berkeley DB 数据库中。

  ● 速度:如果加上“-z”参数,采用 UDP 协议“只发送不接收”模式将 set(add/replace/...) 命令写入的数据传递给 NMDB 服务器端,对 Memcache 客户端写速度的影响几乎可以忽略不计。在千兆网卡、同一交换机下服务器之间的 UDP 传输丢包率微乎其微。在命中的情况下,读取数据的速度跟普通的 Memcached 无差别,速度一样快。

  ● 读取:当“dbcached 的 Memcached 部分”接收到一个 get(incr/decr/...) 请求后,如果“dbcached 的 Memcached 部分”查询自身的内存缓存未命中,则“dbcached 持久化存储管理器”会通过“NMDB 客户端接口”从 QDBM 或 Berkeley DB 数据库中取出数据,返回给用户,然后储存到 Memcached 内存中。如果有用户再次请求这个 key,则会直接从 Memcached 内存中返回 Value 值。

  ● 持久:使用 dbcached,不用担心 Memcached 服务器死机、重启而导致数据丢失。

  ● 变更:使用 dbcached,即使因为故障转移,添加、减少 Memcached 服务器节点而破坏了“key 信息”与对应“Memcached 服务器”的映射关系也不怕。

  ● 分布:dbcached 和 NMDB 既可以安装在同一台服务器上,也可以安装在不同的服务器上,多台 dbcached 服务器可以对应一台 NMDB 服务器。

  ● 特长:dbcached 对于“读”大于“写”的应用尤其适用。

那么memcachedb和dbcached有什么区别呢?

Memcachedb 可以保证数据的持久化存储,但目前还没有解决 Memcache 服务器池故障转移导致的数据丢失。而 dbcached 可以,它在未命中时会请求后端的 NMDB 取回数据。在接下来的版本中,dbcached 后端的 NMDB 将设计为两台,进行互备,届时无论前端 dbcached 中的某几台挂了还是后端 NMDB 中的一台挂了,数据都不会丢失。

dbcached 和 Memcachedb 的设计方向不同,dbcached 的设计方向是发挥 Memcached 的内存缓存性能优势,使之成为一个具有“故障转移”、“数据持久化存储”、“多服务器同时读写”的高并发内存缓存系统,它是围绕 Memcached 进行开发的。而 Memcachedb 只使用了 Memcached 的协议和网络层,抛弃了 Memcached 的内存管理部分,使用 Berkeley DB 数据库自身的缓存来实现,是围绕 Berkeley DB 进行开发的,目前支持类似 MySQL 主辅库同步的方式实现读写分离,支持“主服务器可读写、辅助服务器只读”模式。

作者的博客:

http://blog.s135.com/read.php/329.htm
11
2
评论 共 3 条 请登录后发表评论
3 楼 sheep3600 2011-06-22 11:10
gqf2008 写道
我觉得已经歪曲了缓存的真正意义

哈哈,会不会发展到做个内存数据库呢~~~,不考虑数据完整性的,只考虑速度的。
剑走偏锋,和高考作文似的,要么NB,要么0分。
2 楼 gqf2008 2008-03-27 09:41
我觉得已经歪曲了缓存的真正意义
1 楼 fnet 2008-03-24 17:56
很强大


发表评论

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

相关推荐

  • [转贴]dbcached──“分布式 key-value 数据库内存缓存系统”

    前言:dbcached 1.0 beta* 在 ...编写 dbcached 的目的是为了最大限度的发挥 Memcached 内存缓存的优势,便捷地维护 Memcached 服务器节点哈希列表,智能地支持 Memcached 故障转移,同时保证数据的持久化存储...

  • NoSQL数据库笔谈(3)

    平均速度: 6871 次/秒 最大速度 12542 次/秒 源代码级别的分析 非常好的剖析文章 dbcached ● dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 数据库内存缓存系统。 ● dbcached = Memcached + 持久化...

  • dbcached简单功能测试结果报告

    dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 数据库内存缓存系统.协议:New BSD License 作者:张宴网址:http://code.google.com/p/dbcached/作者blog: http://blog.s135.com对这个项目不太清楚的,...

  • PHP常见缓存技术分析

    但数据库中有些数据是完全静态的或不太经常变动的,缓存系统会通过把SQL查询的结果缓存到一个更快的存储系统中存储,从而避免频繁操作数据库而很大程度上提高了程序执行时间,而且缓存查询结果也允许你后期处理。

  • PHP缓存技术的使用技巧分享

    PHP缓存技术的应用时相当普遍的,也许...但数据库中有些数据是完全静态的或不太经常变动的,缓存系统会通过把SQL查询的结果缓存到一个更快的存储系统中存储,从而避免频繁操作数据库而很大程度上提高了程序执行时

  • PHP常见缓存技术分析 php缓存机制 数据缓存 页面缓存 内存缓存 时间触发缓存 内容触发缓存 静态缓存

    但数据库中有些数据是完全静态的或不太经常变动的,缓存系统会通过把SQL查询的结果缓存到一个更快的存储系统中存 储,从而避免频繁操作数据库而很大程度上提高了程序执行时间,而且缓存查询结果也允许你后期处理

  • PHP常见缓存技术分析[转载]

    但数据库中有些数据是完全静态的或不太经常变动的,缓存系统会通过把SQL查询的结果缓存到一个更快的存储系统中存储,从而避免频繁操作数据库而很大程度上提高了程序执行时间,而且缓存查询结果也允许你后

  • PHP常见缓存技术分析(cache)

    PHP常见缓存技术分析(cache) 博客分类:  Php / Mysql CachePHPFPmemcachedSQL 在大部份情况下我们的网站都会使用数据库作为站点数据存储的容器。当你执行一个SQL查询时,典型的处理过程 是:...

  • Django学习15-缓存:Memcache

    缓存CacheDjango 缓存系统CACHES使用缓存缓存整个网站页面缓存在模板中使用缓存Cache API设置Vary header控制缓存Memcached安装Memcached 运行使用Memcached作为Django缓存Memcached的缺点 Django 缓存系统 Django是...

  • PHP缓存应用场景分析

    PHP缓存技术的使用技巧分享 ...当你执行一个SQL查询时,典型的处理过程是:连接数据库->准备SQL查询->发送查询到数据库->取得数据库返回结果->关闭数据库连接。但数据库中有些数据是完全静态的或不

  • nosql数据库笔谈

    领域模型 + 分布式缓存 + 存储 (Qi4j和NoSql运动),可根据CAP三原则结合自己项目定制灵活的分布式方案,难度高。 我准备提供第三种方案:实现可以配置CAP的数据库,动态调配CAP。 CA:传统关系...

  • 有哪些缓存技术php,PHP常用缓存技术介绍

    PHP常用缓存技术介绍最近小编喜欢上了PHP,下面就和大家一起来分享一下我知道的内容。更多内容请关注应届毕业生网!PHP缓存包括PHP编译缓存和PHP数据缓存两种。PHP是一种解释型语言,属于边编译边运行的那种。这种...

  • php mysql引擎缓存_PHP几种常见的缓存技术

    但数据库中有些数据是完全静态的或不太经常变动的,缓存系统会通过把SQL查询的结果缓存到一个更快的存储系统中存储,从而避免频繁操作数据库而很大程度上提高了程序执行时间,而且缓存查询结...

  • nosql 数据库笔记

    源地址:http://blog.csdn.net/lyflower/archive/2010/12/29/6104571.aspx<br />  nosql 数据库笔记 I/O的五分钟法则在 1987 年,Jim Gray 与 Gianfranco Putzolu 发表了这个"五分钟法则"的观点,...

  • 常见的PHP缓存技术分析[概念版]

    dbcached 是一款基于 Memcached 和 NMDB 的分布式 key-value 数据库内存缓存系统。 以上的缓存技术虽然能很好的解决频繁查询数据库的问题,但其缺点在在于数据无时效性,下面我给出我在项目中常用的方法: 时间触发...

  • NoSQL数据库笔谈

    领域模型 + 分布式缓存 + 存储 (Qi4j和NoSql运动),可根据CAP三原则结合自己项目定制灵活的分布式方案,难度高。 我准备提供第三种方案:实现可以配置CAP的数据库,动态调配CAP。 CA:传统...

  • 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip

    【优质项目推荐】 1、项目代码均经过严格本地测试,运行OK,确保功能稳定后才上传平台。可放心下载并立即投入使用,若遇到任何使用问题,随时欢迎私信反馈与沟通,博主会第一时间回复。 2、项目适用于计算机相关专业(如计科、信息安全、数据科学、人工智能、通信、物联网、自动化、电子信息等)的在校学生、专业教师,或企业员工,小白入门等都适用。 3、该项目不仅具有很高的学习借鉴价值,对于初学者来说,也是入门进阶的绝佳选择;当然也可以直接用于 毕设、课设、期末大作业或项目初期立项演示等。 3、开放创新:如果您有一定基础,且热爱探索钻研,可以在此代码基础上二次开发,进行修改、扩展,创造出属于自己的独特应用。 欢迎下载使用优质资源!欢迎借鉴使用,并欢迎学习交流,共同探索编程的无穷魅力! 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip 基于业务逻辑生成特征变量python实现源码+数据集+超详细注释.zip

  • 六一儿童节快乐!(六一儿童节庆祝代码)Vue开发

    六一儿童节快乐!(六一儿童节庆祝代码)Vue开发 like Project setup npm install Compiles and hot-reloads for development npm run serve Compiles and minifies for production npm run build Lints and fixes files npm run lint Customize configuration

  • uniapp聊天工具源码.zip

    提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

  • NX二次开发uc1603 函数介绍

    NX二次开发uc1603 函数介绍,Ufun提供了一系列丰富的 API 函数,可以帮助用户实现自动化、定制化和扩展 NX 软件的功能。无论您是从事机械设计、制造、模具设计、逆向工程、CAE 分析等领域的专业人士,还是希望提高工作效率的普通用户,NX 二次开发 Ufun 都可以帮助您实现更高效的工作流程。函数覆盖了 NX 软件的各个方面,包括但不限于建模、装配、制图、编程、仿真等。这些 API 函数可以帮助用户轻松地实现自动化、定制化和扩展 NX 软件的功能。例如,用户可以通过 Ufun 编写脚本,自动化完成重复性的设计任务,提高设计效率;或者开发定制化的功能,满足特定的业务需求。语法简单易懂,易于学习和使用。用户可以快速上手并开发出符合自己需求的 NX 功能。本资源内容 提供了丰富的中英文帮助文档,可以帮助用户快速了解和使用 Ufun 的功能。用户可以通过资源中的提示,学习如何使用 Ufun 的 API 函数,以及如何实现特定的功能。

Global site tag (gtag.js) - Google Analytics