将Mysql改成:分布式内存数据库
来源:互联网 发布:php怎么实现三级分销 编辑:程序博客网 时间:2024/06/06 20:42
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中存放的数据,请看如下示例:
Sql代码 白云下载站 http://www.baiasp.com
- 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';
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=latin1CONNECTION='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就问世了,他们是Caffeine和New 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网站和开发人员的福音阿。
http://www.baiasp.com/article/1426.html
- 将Mysql改成:分布式内存数据库
- django 将自带的数据库sqlite3改成mysql
- 在MyEclipse环境下将采用SSH2框架的项目从连接到MySQL数据库改成连接到Oracle数据库
- 分布式内存和分布式数据库
- 分布式内存数据库--Voltdb
- 分布式内存数据库概述
- 如何将数据库的连接池改成c3p0数据库连接池?
- MySQL 5.7,将字符编码统一改成utf8
- spring 官方例子->宠物医院,数据库改成 MySQL,数据库连接池改成 druid
- 分布式内存数据库--Redis事务
- oracle数据库中将varchar2类型的字段改成clob类型 先将varchar2类型的字段改成long类型的,然后再将long类型改成clob类型
- 将NAN 改成 1,有的时候改成 0
- 基于内存数据库的分布式数据库架构
- 基于内存数据库的分布式数据库架构
- 内存数据库的分布式数据库架构
- 基于内存数据库的分布式数据库架构
- 基于内存数据库的分布式数据库架构
- mysql分布式数据库中间件对比
- JQUERY实现鼠标悬停在图片上模拟放大镜效果
- FFmpeg总结(十二)用ffmpeg与nginx实现直播多路流并发播放
- 浅谈前端性能优化(五)——减少HTTP请求数
- OI历程——前五个月
- J2EE搭建Dynamic web SpringMVC工程404错误分析(二)
- 将Mysql改成:分布式内存数据库
- 项目管理思考
- springMVC利用jquery-form.js异步提交表单(上传文件)
- Nginx基本配置
- hgame17_re 部分writeup(持续更新)
- 从零开始,手把手教会你5分钟用SPARK对PM2.5数据进行分析
- 通过Scroller实现View的流畅滑动
- 上确界之我的理解
- 2017年5月7日 16:01:40 67. Add Binary【easy】