検索

[转]memCached 客户端

Jun 07, 2016 pm 04:30 PM
memcachememcachedダウンロードクライアント

memcache客户端下载 http://code.google.com/p/memcached/wiki/Clients ----------------------------------------------------------------------------------------------------------------------------------- memcached是什么? 许多Web应用都将数据保


memcache客户端下载

http://code.google.com/p/memcached/wiki/Clients


-----------------------------------------------------------------------------------------------------------------------------------


memcached是什么?

许多Web应用都将数据保存到DBMS中,应用服务器从中读取数据并在浏览器中显示。 但随着数据量的增大、访问的集中,就会出现RDBMS的负担加重、数据库响应恶化、 网站显示延迟等重大影响。

memcached 是以LiveJournal 旗下Danga Interactive 公司的Brad Fitzpatric 为首开发的一款软件。memcached是高性能的分布式内存缓存服务器,也就是可以允许不同主机上的多个用户同时访问这个缓存系统,这种方法不仅解决了共享内存只能是单机的弊端,同时也解决了数据库检索的压力,最大的优点是提高了访问获取数据的速度。 一般的使用目的是,通过缓存数据库查询结果,减少数据库访问次数,以提高动态Web应用的速度、 提高可扩展性。一般情况下memcached的用途如下:

Memcached的内置内存存储方式

为了提高性能,memcached中保存的数据都存储在memcached内置的内存存储空间中。由于数据仅存在于内存中,因此重启memcached、重启操作系统会导致全部数据消失。另外,内容容量达到指定值之后,就基于LRU(Least?Recently?Used)算法自动删除不使用的缓存。memcached本身是为缓存而设计的服务器,因此并没有过多考虑数据的永久性问题。所以我们在取值时,应考虑缓存中的数据已经被替换掉或者是程序员自已对数据置了过期时间的情况。即应判断 get(key)==null的情况。

Memcached的架构:

memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个memcached不会互相通信以共享信息。那么,怎样进行分布式完全取决于客户端的实现。

memcached的分布式:

我们采用的memcached for java client所使用的分布式算法是Consistent?Hashing算法。

windows下memCached服务器端搭建:

1.?????? 下载 memcache(http://jehiah.cz/projects/memcached-win32/)的windows稳定版,解压到某一路径,即为memcached_home。

2.?????? 在终端(也即cmd命令界面)下输入 ‘%memcached_home%"memcached.exe -d install’ 安装

3.?????? 再输入: ‘%memcached_home%"memcached.exe -d start’ 启动。注意: 以后memcached将作为windows的一个服务每次开机时自动启动,这样服务器端已经安装完毕了。

4.?????? Memcached常用参数说明:

memcached -d –m 1024? -l 192.200.1.75 -p 11211

-d 以守护程序(daemon)方式运行 memcached;

-m 设置 memcached可以使用的内存大小,单位为 M;

-l 设置监听的 IP 地址,如果是本机的话,通常可以不设置此参数;

-p 设置监听的端口,默认为 11211,所以也可以不设置此参数;

Linux下的安装:

memcached安装与一般应用程序相同,configure、make、make?install就行了。

$?wget?http://www.danga.com/memcached/dist/memcached-1.2.5.tar.gz

$?tar?zxf?memcached-1.2.5.tar.gz

$?cd?memcached-1.2.5

$?./configure

$?make

$?sudo?make?install

默认情况下memcached安装到/usr/local/bin下。

从终端输入:$?/usr/local/bin/memcached?-p?11211?-m?64m?-vv即可启动memcached

Memcached的java客户端的使用。

1.?????? 下载Memcached 的java客户端包( http://www.whalin.com/memcached/#download)

2.?????? 根据不同版本构建到工程中。

3.?????? 由于Memcached的客户端在处理大对象的序列化时,效率较差,通过hessian的序列化工具进行了相应模块的替换。优化后的memcached java client 加入到项目构建路径中即可。

4.?????? 调用方法详见API。

5.?????? 依赖的包及生成后的memcached的包:










-----------------------------------------------------------------------------------------------------------------------------------









Memcached?是danga.com(运营LiveJournal的技术团队)开发的一套分布式内存对象缓存系统,用于在动态系统中减少数据库负载,提升性能。

??? 网上有很多讲到Memcached For Linux的安装教程,但是Memcached For Win32 and Python的就甚少,偶尔google找到一篇
比较相近的英文教程,觉得很不错就打算翻译下来,并且写一个Hello World的memcached实例。

安装部分来自 原文?

1.下载 memcached 1.2.1 for Win32?.

?

2.把memcached-1.2.1-win32.zip解包到你想要的路径下?(如:C:/memcached-1.2.1-win32)

?

3.打开命令行(在开始菜单中的"运行",输入"cmd"),使用以下的命令安装:?
?

  1. C:/memcached-1.2.1-win32/memcached.exe?-d?install??

安装完成之后,再执行以下命令来启动memcached:

  1. C:/memcached-1.2.1-win32/memcached.exe?-d?start????

这样memcached会使用默认的端口(11211)来启动,启动成功的话,你可以在任务管理器中看到memcached.exe

?

?

4.为了和memcached通信,你需要安装一个memcached客户端?,来对memcached做“增删改”操作。memcached有很多个客户
端程序可以使用,对应于各种语言,有各种语言的客户端。基于C语言的有libmemcache、 APR_Memcache;基于Perl的有Cache::Memcached;另外还有Php、Python、Ruby、Java、C#等语言的支持。其中PHP的客户端是最多的,你可以在网上搜
索到大部分,这里我只介绍python的客户端。

5.获取最新版的memcached python客户端: python-memcached-latest.tar.gz?

6.把python-memcached-latest.tar.gz解压到任意路径
?(如c:/python-memcached-1.45)

7.在命令行中cd到c:/python-memcached-1.45目录下:?
?

  1. cd?c:/python-memcached-1.45??

?

8.然后运行以下命令安装python-memcached:?

  1. python?setup.py?build??
  2. python?setup.py?install??

这样python-memcached就成功安装到python库中。如果提示ImportError: No module named setuptools?,请先安装
setuptools for win32?。

9.运行以下代码来测试python-memcached是否成功安装?

[python]? view plain copy

  1. import?memcache??
  2. #创建连接??
  3. mc_client?=?memcache.Client(['127.0.0.1:11211'],?debug=0)??
  4. #写、读??
  5. mc_client.set("key_a",?"value_a")??
  6. value?=?mc_client.get("key_a")??
  7. print?"key_a?'s?value?in?memcached?is:?%s"?%(value)??
  8. #删??
  9. mc_client.delete("key_a")??
  10. value?=?mc_client.get("key_a")??
  11. print?"key_a?'s?value?in?memcached?after?deleted?is:?%s"?%(value)??
  12. #自增、自减??
  13. mc_client.set("count_key",?"11")??
  14. value?=?mc_client.get("count_key")??
  15. print?"general?value:?",?value??
  16. mc_client.incr("count_key")??
  17. value?=?mc_client.get("count_key")??
  18. print?"general?value?after?increment:?",?value??
  19. mc_client.decr("count_key")??
  20. value?=?mc_client.get("count_key")??
  21. print?"general?value?after?decrement:?",?value??



成功的话会显示以下内容:

?

  1. key_a?'s?value?in?memcached?is:?value_a??
  2. key_a?'s?value?in?memcached?after?deleted?is:?None??
  3. general?value:??11??
  4. general?value?after?increment:??12??
  5. general?value?after?decrement:??11??

至此,Memcached For Win32 和 Memcached Python Client安装完成。





-------------------------------------------------------------------------------------------------------------




Memcached是被广泛使用的分布式缓存技术。不同的语言有不同的Memcached客户端程序,对于Java客户端来说,首推Memcached Java Client(http://github.com/gwhalin/Memcached-Java-Client )。

这次,Memcached Java Client推出的2.6.1发布版是基于全新的performance分支,具有如下重大改进:

  1. 较之老版本,在性能上有300%左右的提升;
  2. 兼容老版本,用户无须修改自己的源代码;
  3. 支持多个memcached协议,包括text,udp和binary协议;
  4. 支持SASL认证机制;
  5. 重新实现的连接池,修复了之前的连接数太多所导致的OutOfMemory异常;
  6. 加入了slf4j logger支持,使得开发人员可以方便的记录日志;
  7. 支持自定义的对象序列化方法。

这个分支由Schooner Information Technology贡献,并由Schooner中国团队完成开发,开发者是:

王新根,new.root@gmail.com;

李蒙,jowett.lee@gmail.com。

可以从这里下载二进制包:https://github.com/gwhalin/Memcached-Java-Client/downloads

源代码在github上,http://github.com/gwhalin/Memcached-Java-Client ,然后选择performance分支。

下面是一些性能测试的数据,包括了当前流行的Memcached Java Client。

其中,schooner指的是这个分支的text protocol, schooner_bin指的是binary protocol。

?

?

?

?


作者:zeo112140 发表于2013-6-8 11:41:06 原文链接

阅读:13 评论:0 查看评论

[转]memCached 客户端

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQLのライセンスは、他のデータベースシステムと比較してどうですか?MySQLのライセンスは、他のデータベースシステムと比較してどうですか?Apr 25, 2025 am 12:26 AM

MySQLはGPLライセンスを使用します。 1)GPLライセンスにより、MySQLの無料使用、変更、分布が可能になりますが、変更された分布はGPLに準拠する必要があります。 2)商業ライセンスは、公的な変更を回避でき、機密性を必要とする商用アプリケーションに適しています。

MyisamよりもInnodbを選びますか?MyisamよりもInnodbを選びますか?Apr 25, 2025 am 12:22 AM

Myisamの代わりにInnoDBを選択する場合の状況には、次のものが含まれます。1)トランザクションサポート、2)高い並行性環境、3)高いデータの一貫性。逆に、Myisamを選択する際の状況には、1)主に操作を読む、2)トランザクションサポートは必要ありません。 INNODBは、eコマースプラットフォームなどの高いデータの一貫性とトランザクション処理を必要とするアプリケーションに適していますが、Myisamはブログシステムなどの読み取り集約型およびトランザクションのないアプリケーションに適しています。

MySQLの外国キーの目的を説明してください。MySQLの外国キーの目的を説明してください。Apr 25, 2025 am 12:17 AM

MySQLでは、外部キーの機能は、テーブル間の関係を確立し、データの一貫性と整合性を確保することです。外部キーは、参照整合性チェックとカスケード操作を通じてデータの有効性を維持します。パフォーマンスの最適化に注意し、それらを使用するときに一般的なエラーを避けてください。

MySQLのインデックスのさまざまなタイプは何ですか?MySQLのインデックスのさまざまなタイプは何ですか?Apr 25, 2025 am 12:12 AM

MySQLには、B-Treeインデックス、ハッシュインデックス、フルテキストインデックス、空間インデックスの4つのメインインデックスタイプがあります。 1.B-Treeインデックスは、範囲クエリ、ソート、グループ化に適しており、従業員テーブルの名前列の作成に適しています。 2。HASHインデックスは、同等のクエリに適しており、メモリストレージエンジンのHASH_TABLEテーブルのID列の作成に適しています。 3。フルテキストインデックスは、記事テーブルのコンテンツ列の作成に適したテキスト検索に使用されます。 4.空間インデックスは、地理空間クエリに使用され、場所テーブルのGEOM列での作成に適しています。

MySQLでインデックスをどのように作成しますか?MySQLでインデックスをどのように作成しますか?Apr 25, 2025 am 12:06 AM

tocreateanindexinmysql、usethecreateindexstatement.1)forasinglecolumn、 "createdexidx_lastnameonemployees(lastname);" 2)foracompositeindexを使用して、 "createindexidx_nameonemployees(lastname、firstname);" 3); "3)、" 3)を使用します

MySQLはSQLiteとどのように違いますか?MySQLはSQLiteとどのように違いますか?Apr 24, 2025 am 12:12 AM

MySQLとSQLiteの主な違いは、設計コンセプトと使用法のシナリオです。1。MySQLは、大規模なアプリケーションとエンタープライズレベルのソリューションに適しており、高性能と高い並行性をサポートしています。 2。SQLiteは、モバイルアプリケーションとデスクトップソフトウェアに適しており、軽量で埋め込みやすいです。

MySQLのインデックスとは何ですか?また、パフォーマンスをどのように改善しますか?MySQLのインデックスとは何ですか?また、パフォーマンスをどのように改善しますか?Apr 24, 2025 am 12:09 AM

MySQLのインデックスは、データの取得をスピードアップするために使用されるデータベーステーブル内の1つ以上の列の順序付けられた構造です。 1)インデックスは、スキャンされたデータの量を減らすことにより、クエリ速度を改善します。 2)B-Tree Indexは、バランスの取れたツリー構造を使用します。これは、範囲クエリとソートに適しています。 3)CreateIndexステートメントを使用して、createIndexidx_customer_idonorders(customer_id)などのインデックスを作成します。 4)Composite Indexesは、createIndexIDX_CUSTOMER_ORDERONORDERS(Customer_Id、Order_date)などのマルチコラムクエリを最適化できます。 5)説明を使用してクエリ計画を分析し、回避します

データの一貫性を確保するために、MySQLでトランザクションを使用する方法を説明します。データの一貫性を確保するために、MySQLでトランザクションを使用する方法を説明します。Apr 24, 2025 am 12:09 AM

MySQLでトランザクションを使用すると、データの一貫性が保証されます。 1)StartTransactionを介してトランザクションを開始し、SQL操作を実行して、コミットまたはロールバックで送信します。 2)SavePointを使用してSave Pointを設定して、部分的なロールバックを許可します。 3)パフォーマンスの最適化の提案には、トランザクション時間の短縮、大規模なクエリの回避、分離レベルの使用が合理的に含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

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

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター