mysql中使用UDF自动同步memcached效率笔记
接上篇:mysql使用mysql-udf-http效率测试笔记 ,这次不使用rest架构,而是使用:libmemcached和memcached_functions_mysql
接上篇: ,这次不使用rest架构,而是使用:libmemcached和memcached_functions_mysql,测试版本是:libmemcached-0.34.tar.gz和memcached_functions_mysql-0.9.tar.gz,其它版本配对都有问题,我安装测试过有问题的版本有:
代码如下:
memcached_functions_mysql-1.1在:
libmemcached-0.49\libmemcached-0.48\libmemcached-0.47\libmemcached-0.30\libmemcached-0.43\\libmemcached-0.42\
下安装有错误
memcached_functions_mysql-0.10在:
libmemcached-0.42\下安装有错误
memcached_functions_mysql-0.8在:
libmemcached-0.49\libmemcached-0.48\libmemcached-0.47\libmemcached-0.44\libmemcached-0.43\
\libmemcached-0.42\下安装有错误
MySQL测试版本:5.1.55,操作系统Centos5.4 64bit,内存2G
安装libmemcached-0.34和memcached_functions_mysql-0.9,
代码如下:
[root@sunss24 libmemcached-0.34]#./configure \
--with-memcached=/home/memcache/bin/memcached
[root@sunss24 libmemcached-0. 34]# make
[root@sunss24 libmemcached-0. 34]# make install
再运行一下memstat,算成功了
[root@sunss24 ~]# ln -s /usr/local/lib/libmemcached.so.3 /usr/lib/
[root@sunss24 ~]# cd memcached_functions_mysql-0.9
[root@sunss24 memcached_functions_mysql-0.9]# ./configure \
--with-mysql=/usr/local/mysql/bin/mysql_config \
--libdir=/usr/local/mysql/lib/
[root@sunss memcached_functions_mysql-0.9]# make && make install
安装完成后将UDFs加载到MySQL中:
代码如下:
mysql> show variables like "%plugin%";
+---------------+-----------------------------------+
| Variable_name | Value |
+---------------+-----------------------------------+
| plugin_dir | /usr/local/mysql/lib/mysql/plugin |
+---------------+-----------------------------------+
1 row in set (0.00 sec)
[root@sunss ~]# find / -name "libmemcached_functions_mysql.so"
/usr/local/mysql/lib/libmemcached_functions_mysql.so
/root/memcached_functions_mysql-0.9/src/.libs/libmemcached_functions_mysql.so
You have new mail in /var/spool/mail/root
[root@sunss ~]# cp /usr/local/mysql/lib/libmemcached_functions_mysql.so /usr/local/mysql/lib/mysql/plugin/
[root@sunss ~]# cd memcached_functions_mysql-0.9/
[root@sunss ~]#cd sql/
mysql> source install_functions.sql;
查看各种版本:
代码如下:
mysql> select memc_udf_version();
+--------------------+
| memc_udf_version() |
+--------------------+
| 0.9 |
+--------------------+
1 row in set (0.00 sec)
mysql> select memc_libmemcached_version();
+-----------------------------+
| memc_libmemcached_version() |
+-----------------------------+
| 0.34 |
+-----------------------------+
1 row in set (0.00 sec)
mysql>
遇到问题:
代码如下:
No package 'libmemcached' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables DEPS_CFLAGS
and DEPS_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
解决办法:
[root@sunss24 memcached_functions_mysql-0.9]# whereis pkgconfig
[root@sunss24 memcached_functions_mysql-0.9]# export \
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
导出所有memcache内容:
使用:
效率测试:
插入:
代码如下:
include_once("gettime.php");
$btime = getmicrotime();
$i = 0;
$mem = new Memcache();
$mem->addServer('192.168.0.10', 11212);
$local_db = mysql_connect("192.168.0.208", "sunss", "123456");
if(!$local_db)
{
die('Could not connect: '.mysql_error());
}
$local_db_sel = mysql_select_db("test", $local_db);
mysql_query("set names utf8", $local_db);
while ( $i $re_sql = "insert into urls (id,url) values ($i, 'www.gongchang.com')";
$res = mysql_query($re_sql, $local_db);
$i++;
}
mysql_close($local_db);
$etime = getmicrotime();
$runTime = round($etime - $btime, 4);
echo "runTime: ".$runTime."\r\n";
?>
1000条,插入时间:runTime: 1.4072
删除:
代码如下:
include_once("gettime.php");
$btime = getmicrotime();
$i = 0;
$mem = new Memcache();
$mem->addServer('192.168.0.10', 11212);
$local_db = mysql_connect("192.168.0.208", "sunss", "123456");
if(!$local_db)
{
die('Could not connect: '.mysql_error());
}
$local_db_sel = mysql_select_db("test", $local_db);
mysql_query("set names utf8", $local_db);
while ( $i //$re_sql = "insert into urls (id,url) values ($i, 'www.gongchang.com')";
$re_sql = "delete from urls where id=".$i;
//echo "re_sql_1: ".$re_sql."\n";
$res = mysql_query($re_sql, $local_db);
$i++;
}
mysql_close($local_db);
$etime = getmicrotime();
$runTime = round($etime - $btime, 4);
echo "runTime: ".$runTime."\r\n";
?>
删除1000条,运行时间:runTime: 1.5534
更新未作
结论:每秒query大概650条记录,比上次的mysql-udf-http快多了

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









Memcached は、Web アプリケーションのパフォーマンスを大幅に向上させる、一般的に使用されるキャッシュ テクノロジです。 PHP で一般的に使用されるセッション処理方法は、サーバーのハードディスクにセッション ファイルを保存することです。ただし、サーバーのハードディスクがパフォーマンスのボトルネックの 1 つになるため、この方法は最適ではありません。 Memcached キャッシュ テクノロジを使用すると、PHP でのセッション処理を最適化し、Web アプリケーションのパフォーマンスを向上させることができます。 PHPでのセッション

PHP8.0 のキャッシュ ライブラリ: Memcached インターネットの急速な発展に伴い、最新のアプリケーションではパフォーマンスを向上させ、大量のデータを処理するために効率的で信頼性の高いキャッシュ テクノロジが必要です。 PHP の人気とオープン ソースの性質により、PHP キャッシュ ライブラリは Web 開発コミュニティにおいて不可欠なツールとなっています。 Memcached は、広く使用されているオープンソースの高速メモリ キャッシュ システムで、数百万の同時接続キャッシュ リクエストを処理でき、ソーシャル ネットワークやオンラインなど、さまざまな種類のアプリケーションで使用できます。

インターネットの発展に伴い、インターネット アプリケーションの分野では PHP アプリケーションがますます一般的になりました。ただし、PHP アプリケーションによる同時アクセスが多いと、サーバーの CPU 使用率が高くなり、アプリケーションのパフォーマンスに影響を与える可能性があります。 PHP アプリケーションのパフォーマンスを最適化するには、Memcached キャッシュ テクノロジが良い選択肢となっています。この記事では、Memcached キャッシュ テクノロジを使用して PHP アプリケーションの CPU 使用率を最適化する方法を紹介します。 Memcached キャッシュ テクノロジの概要 Memcached は、

インターネットの急速な発展に伴い、大規模な MySQL データベースのバックアップとリカバリは、大手企業や Web サイトにとって不可欠なスキルの 1 つになりました。 Memcached の普及に伴い、Memcached のバックアップと復元の方法も重要な問題となっています。 Web 開発の主要な言語の 1 つである PHP には、MySQL と Memcached のバックアップとリカバリを処理する上で独自の利点とスキルがあります。この記事では、MySQL と Memcached のバックアップとリカバリを PHP で処理する実装方法を詳しく紹介します。

最新のインターネット アプリケーションが急速に開発されているため、アプリケーションの成功にはユーザー エクスペリエンスが非常に重要です。アプリケーションの高いパフォーマンスと高可用性をどのように確保するかは、開発者が解決する必要がある重要な問題の 1 つとなっています。広く使用されているプログラミング言語の 1 つである PHP のパフォーマンスの監視と最適化も非常に重要です。 Memcached は、アプリケーションのパフォーマンスとスケーラビリティの向上に役立つ、高性能の分散メモリ オブジェクト キャッシュ システムです。この記事では、PHP と Memcached を使用してパフォーマンス監視を実装する方法を紹介します。

ネットワーク アプリケーションの継続的な増加とデータ量の継続的な拡大に伴い、データの読み取りと書き込みの効率がアプリケーションのパフォーマンスに影響を与える重要な要素の 1 つになっています。キャッシュ技術を適用すると、この問題をうまく解決できます。 PHP アプリケーションでは、Memcached が最も一般的に使用されるキャッシュ サーバーです。 Memcached は、一般的に使用されるデータをメモリに保存し、データ検索の効率を向上させることができる高性能分散メモリ オブジェクト キャッシング システムです。この記事では、PHP と Memcached を使用したキャッシュ管理と最適化の方法を紹介します。

最新のアプリケーションの急速な成長に伴い、キャッシュは多くの開発者にとって不可欠な部分となっています。キャッシュにより、アプリケーションのパフォーマンスが大幅に向上し、サーバーの負荷が軽減されます。 CakePHP では、キャッシュを実装する 1 つの方法は Memcached を使用することです。 Memcached は、メモリベースの分散キャッシュ システムです。データをメモリに保存し、データの読み取りと書き込みを迅速に行うことができます。マルチサーバー環境では、Memcached は分散方式でデータを保存し、ネットワーク上で共有できます。できるだけでなく

インターネット技術の継続的な発展により、オーディオとビデオのリソースはインターネット上のコンテンツの非常に重要な形式となり、ネットワーク開発で最も広く使用されている言語の 1 つである PHP は、ビデオの分野でも常に使用されています。そしてオーディオの再生。しかし、オーディオおよびビデオ Web サイトのユーザー数が増加するにつれて、多くの Web サイトで問題が発見されました。高い同時実行条件では、PHP のオーディオおよびビデオの処理速度が大幅に低下し、時間内に再生できない、または再生が停止するなどの問題が発生します。 。この問題を解決するには、Memcached キャッシュ テクノロジーを使用する必要があります。
