mysql下的nosql解决方案handlersocket

mysql下的nosql解决方案handlersocket

ID:27626316

大小:63.50 KB

页数:8页

时间:2018-12-05

mysql下的nosql解决方案handlersocket_第1页
mysql下的nosql解决方案handlersocket_第2页
mysql下的nosql解决方案handlersocket_第3页
mysql下的nosql解决方案handlersocket_第4页
mysql下的nosql解决方案handlersocket_第5页
资源描述:

《mysql下的nosql解决方案handlersocket》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、MySQL下的NoSQL解决方案HandlerSocket目前使用MySQL的网站,多半同时使用Memcache作为键值缓存。虽然这样的架构极其流行,有众多成功的案例但过于依赖Memcache,无形中让Memcache成为故障的根源Memcache数据一致性的问题:当MySQL数据变化后,如果不能及时有效的清理掉过期的数据,就会造成数据不一致。这在强调即时性的Web2.0时代,不可取。Memeache崩溃后的雪崩效应:作为缓存的Memeache一旦崩溃,MySQL很可能在短时间内承受高负载而宕机。据说前段时间新浪微博就遭遇了这样的问题。注:关于清理过期数据的问题,

2、可以在程序架构上想办法,如果数据操作有统一DA0封装的话,可以利用Observer模式来清理过期数据,非主题内容,资料自查。面对这些问题,HandlerSocket项目是个不错的解决方案,它通过插件的方式赋予MySQL完整的NoSQL功能,从原理上讲,它跳过MySQL中最耗时的语法解析,查询计划等步骤,直接读取数据,如果内存够大,能装下索引,MySQL的查询效率能提高若干倍!性能测试实例:UsingMySQLasaNoSQL-Astoryforexceeding750,OOOqps(GFW)因为HandlerSocket的性能足够好,所以就没有必要使用Memcac

3、he了,能节省大量的硬件资源,相当低碳!而且HandlerSocket操作的是MySQL放在内存中的索引,没有额外的缓存,所以自然就不存在数据一致性的问题。安装如果使用PerconaServer版本的MySQL就简单了,因为它已经内置了HandlerSocket支持,不过考虑到其内置的版本不够新,存在一些早已修复的BUG,所以最好采用源代码编译。官方已经有了一份简单的安装文档,但在我实际安装时,遇到了一些其他未说明的问题,所以这里就把相应的安装过程再写一遍。首先要确保已经安装了MySQL5.1以上的版本,我用的是Ubuntu操作系统,事先己经用apt安装了MySQ

4、L5.1.37,同时还需要相应的mysql_config,如果是Ubuntu的话,可以:shellgt;aptitudeinstalllibmysqld~dev注:如果你用的MySQL是从源代码编译的或官方提供的二进制版本,可以略过此步。接着下载一份和系统MySQL版本一致的MySQL源代码和HandlerSocket源代码:mysql-5.1.37.tar.gzahiguti-HandlerSocket-Plugin-for-MySQL-1.0.6-76-gf5f7443.tar.gzshellgt:tarzxfmysql-5.1.37.tar.gzshellg

5、t:tarzxfahiguti-HandlerSocket-Plugin-for-MySQL-1.0.6~76-gf5f7443.tar.gzshellgt:cdahigut卜Handlersocket-Plugin-for-MySQL-f5f7443shellgt;./autogen.shshellgt;./configure—with-mysql-source=../mysql-5.1.37—with-mysql-bindir=/usr/bin—with-mysql-plugindir=/usr/lib/mysq1/plugin其中的参数含义如下:with

6、-mysql-source表示MySQL源代码目录,with-mysql-bindir表示MySQL二进制可执行文件目录(也就是mysql_config所在目录),with-mysql-plugindir表示MySQL插件目录,如果不清楚这个目录在哪,可以按如下方法查询:mysqlgt;SHOWVARIABLESLIKE’plugin%’;+++IVariable』ame

7、Value

8、plugindir

9、/usr/lib/mysql/plugin运行命令后,如果你使用的是MySQL5.1.37版本的话,会遇到如下错误信息:MySQLsourceversiondoe

10、snotmatchMySQLbinaryversion明明我们的MySQL源代码版本和二进制版本都是5.1.37,为什么还会出现这个错误呢?通过查询HandlerSocket的编译脚本,发现原来它会检索MySQL源代码目录中的VERSION文件,可MySQL5.1.37的源代码目录里不知何故竟然没有这个文件,所以就报错了,既然知道了原因,那我们就照猫画虎做一个VERS10N文件放到MySQL源代码目录,内容如下:MYSQL_VERSI0N_MAJ0R=5MYSQL_VERSION_MINOR=1MYSQL_VERSION_PATCH=37MYSQL_VERSION

11、_EXTR

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。