java websocket框架_websocket监听数据库

java websocket框架_websocket监听数据库HandlerSocket简介HandlerSocket是针对Mysql的一个NoSQL插件,它作为一个守护进程工作在mysqld进程里面,接收tcp连接,并处理来自客户端的请求。HandlerSocket不支持SQL查询,作为替代,它支持表的简单的CRUD操作。由于下面的原因,在某些情况下HandlerSocket比mysqld/libmysql对儿更快速:-HandlerSocket处理数据…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

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();

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/172629.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ListNode示例

    ListNode*partition(ListNode*head,intx){ListNoderes(0),mid(0);if(!head)returnNULL;ListNode*small=&res;ListNode*big=∣while(head){if(head->val<

    2022年4月8日
    42
  • IDEA创建springboot + mybatis项目全过程「建议收藏」

    IDEA创建springboot + mybatis项目全过程「建议收藏」鉴于隔很久再在IDEA新建springboot项目时,会出现对步骤不确定的情况,因此,写下这篇博客记录创建一个可运行的springboot+mybatis项目的全过程。步骤如下:1.打开IDEA2.File==>new==>project,如图:3.选择springInitializr==>右边的ProjectSDK我选的是我已经安…

    2022年6月24日
    55
  • 西班牙c2语言是什么标准,西班牙语的等级是怎么划分的?

    西班牙c2语言是什么标准,西班牙语的等级是怎么划分的?西班牙语根据欧洲共同语言参考标准分为:A1,A2,B1,B2,C1,C2六个级别。A1,A2为基础入门级别,B1,B2为高级进阶级别,C1,C2为流利进阶级别。《欧洲语言学习统一标准》(Cadreeuropéencommunderéférencepourleslangues),简称”欧标”。是欧洲议会在2001年11月通过的一套建议标准,为欧洲语言在评量架构和教学指…

    2022年5月22日
    49
  • HTML表格代码_html如何制作表格代码

    HTML表格代码_html如何制作表格代码表格代码<table></tabie><tablewidth(表格宽度。可以用像素或百分比表示。)=””height=””(行高)border=””(边框)cellpadding=””(内容跟单元格边框的边距。)cellspacing=””(单元格之间的间距。)align=””(对齐方式。)bgcolor=””(背景色)background=””(背景图片。)><tr(行)align=””(一行的内容的水平对齐方式)valign(一行的内容的垂平对齐.

    2022年8月11日
    9
  • python树莓派编程下载_树莓派Python编程入门与实战(完整版) 中文pdf扫描版[85MB]

    树莓派是一个只有信用卡大小的裸露电路板,它也是一个运行开源Linux操作系统的完全可编程的PC系统。树莓派的官方编程语言是Python,树莓派Python编程入门与实战就介绍了树莓派的Python编程方法。本书共分7个部分。前6个部分介绍了树莓派编程环境、Python基础知识、高级Python、图形编程、业务编程和树莓派Python项目;第7部分通过附录介绍了如何将树莓派操作系统加载到Raspbi…

    2022年4月8日
    222
  • navicat sql 15.23激活码【在线注册码/序列号/破解码】

    navicat sql 15.23激活码【在线注册码/序列号/破解码】,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月19日
    52

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号