handlersocket mysql_Mysql插件之HandlerSocket的安装、配置、使用

HandlerSocket简介

HandlerSocket是针对Mysql的一个NoSQL插件,它作为一个守护进程工作在mysqld进程里面,接收tcp连接,并处理来自客户端的请求。HandlerSocket不支持SQL查询,作为替代,它支持表的简单的CRUD操作。

由于下面的原因,在某些情况下HandlerSocket比mysqld/libmysql对儿更快速:

-HandlerSocket 处理数据不需要解析SQL,由于这个原因使得其占用少量CPU资源。

-HandlerSocket 从客户端批量读取多个请求并处理他们,这使得其占用更少的CPU和磁盘使用率。

-HandlerSocket 客户端/服务器协议比mysql/libmysql对儿更简洁,这使得其占用更少的网络使用率。

Mysql版本需要5.1及以上,mysql的安装就不写了

一、服务器端安装、配置、及测试

1、下载

[root@vm3 ~]# git clone http://github.com/DeNADev/HandlerSocket-Plugin-for-MySQL.git或

[root@vm3 ~]# wget -O HandlerSocket-Plugin-for-MySQL.zip --no-check-certificate https://github.com/DeNADev/HandlerSocket-Plugin-for-MySQL/archive/master.zip2、安装

[root@vm3 ~]# cd HandlerSocket-Plugin-for-MySQL-master/

[root@vm3 HandlerSocket-Plugin-for-MySQL-master]# ./autogen.sh

[root@vm3 HandlerSocket-Plugin-for-MySQL-master]# ./configure --with-mysql-source=../mysql-5.1.62 --with-mysql-bindir=/usr/local/mysql/bin --with-mysql-plugindir=/usr/local/mysql/lib/mysql/plugin/

[root@vm3 HandlerSocket-Plugin-for-MySQL-master]# make

[root@vm3 HandlerSocket-Plugin-for-MySQL-master]# make install

3、配置

以root身份登录到mysql,用下面命令安装handlersocket插件

mysql> install plugin handlersocket soname 'handlersocket.so';

Query OK, 0 rows affected (0.00 sec)

mysql> show plugins;

| handlersocket | ACTIVE | DAEMON | handlersocket.so | BSD |编辑my.cnf文件,在[mysqld]段下加入下列配置项

loose_handlersocket_port    = 9998

loose_handlersocket_port_wr    = 9999

loose_handlersocket_threads    = 4

loose_handlersocket_threads_wr  = 1

loose_handlersocket_address    = 192.168.18.240重启mysql服务

[root@vm3 ~]# service mysqld restart

4、验证部署

查看handlersocket线程

mysql> show processlist;

|3| system user|connecting host|NULL|Connect|NULL|handlersocket:mode=rd,0 conns,0 active|NULL|

|4| system user|connecting host|NULL|Connect|NULL|handlersocket:mode=rd,0 conns,0 active|NULL|

|5| system user|connecting host|NULL|Connect|NULL|handlersocket:mode=rd,0 conns,0 active|NULL|

|6| system user|connecting host|handlersocket|Connect|NULL|handlersocket:mode=wr,0 conns,0 active|NULL|

|7| system user|connecting host|NULL|Connect|NULL|handlersocket:mode=rd,0 conns,0 active|NULL|查看监听端口

[root@vm3 ~]# netstat -ntupl

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local AddressForeign AddressStatePID/Program name

tcp000.0.0.0:33060.0.0.0:*LISTEN 5522/mysqld

tcp00192.168.18.240:99980.0.0.0:*LISTEN 5522/mysqld

tcp00192.168.18.240:99990.0.0.0:*LISTEN 5522/mysqld

至此服务器端部署完毕,下面部署客户端,客户端使用PHP程序语言

二、客户端安装、配置、测试

1、下载

[root@vm4 ~]# wget    http://php-handlersocket.googlecode.com/files/php-handlersocket-0.2.0.tar.gz

这里使用的不是最新的0.3.1版本,而是老的0.2.0,版本,新版本安装时报错,如有兄弟成功安装,请告知,3ks

2、安装

[root@vm4 ~]# tar zxvf php-handlersocket-0.2.0.tar.gz

[root@vm4 ~]# cd php-handlersocket/

[root@vm4 php-handlersocket]# phpize

[root@vm4 php-handlersocket]# ./configure --with-php-config=/usr/bin/php-config

[root@vm4 php-handlersocket]# make

[root@vm4 php-handlersocket]# make install

3、配置

本例使用的是rpm安装的php,编辑/etc/php.ini,添加或修改如下行

extension_dir = "/usr/lib64/php/modules"

extension=handlersocket.so

4、验证

重启httpd服务

[root@vm4 handlersocket]# service httpd restart编写phpinfo.php

[root@vm4 html]# vim /var/www/html/phpinfo.php

phpinfo();访问页面,看看是否加载了handlersocket扩展

141609614.png

ok,扩展已经启用了

5、测试

使用下面代码测试

$host = '192.168.18.240';

$port = 9998;

$port_wr = 9999;

$dbname = 'hstestdb';

$table = 'hstesttbl';

//GET

$hs = new HandlerSocket($host, $port);

if (!($hs->openIndex(1, $dbname, $table, HandlerSocket::PRIMARY, 'k,v')))

{

echo $hs->getError(), PHP_EOL;

die();

}

$retval = $hs->executeSingle(1, '=', array('k1'), 1, 0);

var_dump($retval);

$retval = $hs->executeMulti(

array(array(1, '=', array('k1'), 1, 0),

array(1, '=', array('k2'), 1, 0)));

var_dump($retval);

unset($hs);

//UPDATE

$hs = new HandlerSocket($host, $port_wr);

if (!($hs->openIndex(2, $dbname, $table, '', 'v')))

{

echo $hs->getError(), PHP_EOL;

die();

}

if ($hs->executeUpdate(2, '=', array('k1'), array('V1'), 1, 0) === false)

{

echo $hs->getError(), PHP_EOL;

die();

}

unset($hs);

//INSERT

$hs = new HandlerSocket($host, $port_wr);

if (!($hs->openIndex(3, $dbname, $table, '', 'k,v')))

{

echo $hs->getError(), PHP_EOL;

die();

}

if ($hs->executeInsert(3, array('k2', 'v2')) === false)

{

echo $hs->getError(), PHP_EOL;

}

if ($hs->executeInsert(3, array('k3', 'v3')) === false)

{

echo 'A', $hs->getError(), PHP_EOL;

}

if ($hs->executeInsert(3, array('k4', 'v4')) === false)

{

echo 'B', $hs->getError(), PHP_EOL;

}

unset($hs);

//DELETE

$hs = new HandlerSocket($host, $port_wr);

if (!($hs->openIndex(4, $dbname, $table, '', '')))

{

echo $hs->getError(), PHP_EOL;

die();

}

if ($hs->executeDelete(4, '=', array('k2')) === false)

{

echo $hs->getError(), PHP_EOL;

die();

}至此客户端也部署完毕了,性能和具体应用有待测试!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/380888.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java,jdk安装,配置环境变量,window10系统

1、找到我们要安装的jdk软件,软件下载我就不介绍了,jdk下载连接地址 然后安装,一直点下一步就可以了,这里不建议跟换软件目录,毕竟第一次用,出了什么错就不好弄了,注:记得软件的安装…

solr mysql数据注入_(solr系列:四)将mysql数据库中的数据导入到solr中

在前面的博文中,已完成了在tomcat中对solr的部署,为solr添加了一个自定义的core,并且引入了ik分词器。那么该如何将本地的mysql的数据导入到solr中呢?准备工作:1、mysql数据源:myuser库中的user表(8条数据)/*Navicat M…

Silverlight学习笔记(三):创建第一个Silverlight应用程序

在开始创建程序之前,还是要提一下关于Silverlight开发环境搭建的问题。如果使用VS2010,这可以搭建Silverlight4的开发环境。我推荐大家看这篇由大牛jv9撰写的【轻松建立Silverlight 4开发环境】。 我使用的是VS2008,所以要搭建的是Silverlig…

按钮旁边加一个提示_地铁站的那些“红色按钮”,你知道是干啥用的吗?乱按可能被拘留...

地铁紧急停车按钮图片来自网络位置:站台两侧墙壁上,靠近列车车头、车尾两侧。外观:上锁的红色四方小盒子,按钮为红色,旁边写有“紧急停车按钮”等字样。使用:紧急时刻击碎中间玻璃,按压按钮。红…

根据F12在页面中调整div的大小

我们先随便写一个div大小&#xff0c;然后在chrome浏览器打开&#xff0c;显示效果&#xff1a; #logo{border: 1px solid black;width: 1300px;height: 50px;} .top{border: blue solid 1px;width: 420px;height: 50px;float: left;}<div id"logo"><div c…

The security settings could not be applied to the database because the connection has failed安装Mysql

安装msql出现这个问题&#xff0c;&#xff0c;百度了好久才解决了问题&#xff0c;说一下怎么解决的吧 把以前安装的Mysql删除打开C盘&#xff0c;点击查看&#xff0c;然后点击隐藏的项目&#xff0c;这时候目录会出现ProgramData文件&#xff0c;然后点击这个文件&#xff…

Hibernate配置C3P0连接池(在配好基本的hibernate配置下使用)

拷贝jar包 找到我们的hibernate安装包&#xff0c;在lib目录下找到optional目录&#xff0c;打开c3p0文件&#xff0c;拷贝里面的jar包到eclipse里 写一个测试类&#xff0c;代码入下 public class C3P0Test {Testpublic void test() {Session s HabernateUtils.openSessi…

workerman json mysql_workerman-json-rpc

软件简介一款使用PHP开发的高性能Json Rpc框架&#xff0c;框架使用TCP/IP协议直接传输json数据&#xff0c;系统集成统计监控模块&#xff0c;开发部署维护非常简。workerman-json-rpc 包含了服务端和客户端。特性&#xff1a;使用PHP开发&#xff0c;与PHP紧密结合PHP 多进程…

spring boot 集合mysql_Spring boot整合mysql和druid

Spring boot整合mysql和druid集成mysql数据库引入依赖mysqlmysql-connector-javaruntimeorg.springframework.bootspring-boot-starter-jdbc添加数据库配置Spring boot项目的resources目录下的applicataion.properties# datasourcespring.datasource.urljdbc:mysql://127.0.0.1…

在博客里轻松使用LaTeX 数学公式[转]

笔者最近的博文有不少数学相关内容&#xff0c;发现利用一些网上服务、jQuery和CSS&#xff0c;可以更轻松地在博客里使用语法排版方程式。是基于的排版系统。而就是美国著明计算机教授高德纳(Donald E. Knuth)&#xff0c;为了编写他的巨著《计算机程序设计艺术(The Art of Co…

oracle查看所有用户_Oracle实用命令查看共用一个表空间的所有用户

概述有朋友问到如何查出表空间都被哪些用户使用的一些方法&#xff0c;因为有几种情况需要考虑&#xff0c;也顺便做个总结。需求&#xff1a;如何查看共用一个表空间的所有用户查看某表空间下表的所有者使用dba用户查询&#xff1a;1、如果先要知道表空间的命名&#xff0c;可…

Hibernate中把Session和线程绑定的配置

我们一开始用session都用HibernateUtil工具类获得Session对象&#xff0c;因为该工具类可以保证将线程不安全的Session绑定到当前线程内&#xff0c;但每次返回的对象都是一个新的session&#xff0c;我写了一个测试方法如下&#xff1a; Testpublic void test() {Session s1 …

【转】小周立波张冯喜引爆达人秀 小童星家居照大曝光

原文地址&#xff1a;http://www.soufun.com/news/2010-10-13/3897753.html 小小年纪&#xff0c;一身西装&#xff0c;发式清爽&#xff0c;腔调十足&#xff0c;有观众说她“天才有余&#xff0c;天真不足”&#xff0c;她自己说“进演艺圈太累了”&#xff0c;刚踏进演艺圈就…

mysql命令教学_mysql常用命令有什么

mysql常用命令有&#xff1a;1、“create database name;”&#xff1b;2、“use databasename;”&#xff1b;3、“drop database name”&#xff1b;4、“show tables;”&#xff1b;5、“select version”等等。MySQL 数据库常用命令1、MySQL常用命令create database name; …

调整和改编赛车游戏——游戏屏幕

游戏屏幕 赛车游戏中有很多不同的游戏屏幕&#xff0c;这些都是由RacingGame类中的gameScreens堆栈管理的。本节介绍游戏中使用的大部分屏幕和对应的功能。大多数游戏屏幕相当简单&#xff0c;但其他的有点复杂并实现了一个单元测试&#xff0c;通过单元测试能更好地了解这个类…

trie树--详解

MiYu原创, 转帖请注明 : 转载自 ______________白白の屋 文章作者&#xff1a;yx_th000 文章来源&#xff1a;Cherish_yimi (http://www.cnblogs.com/cherish_yimi/) 转载请注明&#xff0c;谢谢合作。关键词&#xff1a;trie trie树 数据结构前几天学习了并查集和trie树&am…

yii mysql gii_Yii Gii使用

准备数据库第1步 - 创建一个新的数据库。数据库可以通过以下两种方式进行。在终端运行 mysql -u root –p登录数据后&#xff0c;通过执行 CREATE DATABASE mystudy CHARACTER SET utf8 COLLATE utf8_general_ci; 创建一个新的数据库;第2步 - 在 config/db.php 文件中配置数据库…

通过OracleDataReader来读取BLOB类型的数据 (转载)

通过OracleDataReader来读取BLOB类型的数据 在实际的应用过程中&#xff0c;需要把大块的二进制数据存储在数据库中。读取这些大块的数据&#xff0c;可以通过强制类型转换成为byte数组&#xff0c;但是当这个二进制数据体够大时&#xff08;几十兆或者上百兆&#xff09;&…

xampp启动Apache端口被占用,修改端口

apache启动端口被占用有可能是80端口被占用&#xff0c;也用可能是443端口被占用。修改这两个端口方法如下&#xff1a; 首先打开xampp&#xff0c;点击下图的config 如果是80端口被占用&#xff0c;选择httpd,conf,会自动打开这个文件&#xff0c;然后在文件里查找80 找到以…

Microsoft SharePoint Server 2010 的新增功能

Microsoft SharePoint Server 2010 包括几个关键的增强和新增功能。重新设计的用户界面中的功能区通过将命令放置到更易于导航的基于任务的选项卡上&#xff0c;来帮助您更快地完成工作。可以跨多个 Internet 浏览器工作&#xff0c;例如 Microsoft Internet Explorer 7.0 和 8…