代码改变世界

随笔分类 -  memcachedb memcached berkeleyDB

一致性哈希算法及其在分布式系统中的应用

2013-07-22 17:18 by java20130722, 260 阅读, 收藏,
摘要: (转)一致性哈希算法及其在分布式系统中的应用(2011-11-12 22:11:39)转载▼标签:哈希杂谈Consistent hashing算法非常简洁,如果你有一系列服务器,需要把很多 keys (objects)映射到这些服务器上。这时Constent hashing就派上用场了。典型的例子包括 memcached 或者一些分布式系统。余数映射方法server = serverlist[ hash(key) % N ]余数计算的方法简单,数据的分散性也相当优秀,但也有其缺点。那就是当添加或者移除服务器时,缓存重组的代价相当巨大。现假设一台服务器宕机了,把它从列表中移除,为了填补空缺,后面 阅读全文

memcached客户端(分布算法)

2013-07-20 17:03 by java20130722, 478 阅读, 收藏,
摘要: 一、背景资料 memcached本身是集中式的缓存系统,要搞多节点分布,只能通过客户端实现。memcached的分布算法一般有两种选择:1、根据hash(key)的结果,模连接数的余数决定存储到哪个节点,也就是hash(key)%sessions.size(),这个算法简单快速,表现良好。然而这个算法有个缺点,就是在memcached节点增加或者删除的时候,原有的缓存数据将大规模失效,命中率大受影响,如果节点数多,缓存数据多,重建缓存的代价太高,因此有了第二个算法。2、Consistent Hashing,一致性哈希算法,他的查找节点过程如下: 首先求出memcached服务器(节点)的哈希值 阅读全文

memcached全面剖析—— 客户端选择(一致性哈希算法)

2013-07-20 17:01 by java20130722, 375 阅读, 收藏,
摘要: [摘选]memcached全面剖析—— 客户端选择(一致性哈希算法)博客分类:技术算法memcachedmemcached本身是集中式的缓存系统,要搞多节点分布,只能通过客户端实现。memcached的分布算法一般有两种选择:1、hash模余算法:根据hash(key)的结果,模连接数的余数决定存储到哪个节点(键的整数哈希值,根据服务器个数取余来选定服务器节点),也就是hash(key)% sessions.size(),这个余数计算的方法简单,数据的分散性也相当优秀。 但也有其缺点。那就是当添加或移除服务器时,缓存重组的代价相当巨大。添加/删除服务器后(特别是某台服务器down机之后),余数 阅读全文

memcachedb

2013-07-19 17:22 by java20130722, 302 阅读, 收藏,
摘要: memcachedb是为了持久化而产生的一个分布式 "key-value"存储系统,你可以认为是memcached+berkeley DB+sina的一些东西的一个集成,这个东西主要是为了提高持久化对象的访问效率,而不是一个缓存,他的特点是: 比传统的RDBMS速度快效率高 高并发环境下访问安全可靠,效率很不错 存储的数据比较小 总之:高效、安全的事物机制、memcached的分布式协议支持是他的几大亮点.你可以将一些数据量不大,读写却很频繁的数据放再这里面,而不用往mysql等数据库里写,据说“sohu”的在线用户是存在这里面的,可见这东西还是挺可靠的。 在官方文档里明确 阅读全文

轻量级持久存储系统 MemcacheDB

2013-07-19 17:21 by java20130722, 455 阅读, 收藏,
摘要: 轻量级持久存储系统MemcacheDB(转载)(2010-10-18 13:18:07)转载▼标签:代码复制默认守护进程主从it注:memcached可能简称mc,memcachedb可能简称mcdb一、memcachedb是什么mcdb是一款分布式键值持久存储系统,由新浪开源。mcdb基于mc协议,所以可以使用mc客户端直接使用,存储引擎方面使用BerkeleyDB,支持主从复制模式。二、memcachedb的应用场景首先,我们从基本的数据存储的角度看mysql、memcached、memcachedb的区别和特点,当然它们肯定不只这点区别。mc因为是非持久存储的,所以它的定位就是缓存。而m 阅读全文