阅读更多

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:传统...

  • LABVIEW程序实例-DS写属性数据.zip

    labview程序代码参考学习使用,希望对你有所帮助。

  • 毕设和企业适用springboot生鲜鲜花类及数据处理平台源码+论文+视频.zip

    毕设和企业适用springboot生鲜鲜花类及数据处理平台源码+论文+视频.zip

  • 毕设和企业适用springboot企业数据智能分析平台类及汽车管理平台源码+论文+视频.zip

    毕设和企业适用springboot企业数据智能分析平台类及汽车管理平台源码+论文+视频

  • 毕设和企业适用springboot社区物业类及企业创新研发平台源码+论文+视频.zip

    毕设和企业适用springboot社区物业类及企业创新研发平台源码+论文+视频

Global site tag (gtag.js) - Google Analytics