ホームページ  >  記事  >  バックエンド開発  >  一般的な Memcached コマンドと使用方法の詳細な説明_PHP チュートリアル

一般的な Memcached コマンドと使用方法の詳細な説明_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:02:56828ブラウズ

存储命令的格式:


参数说明如下:

set/add/replace
查找关键字
客户机使用它存储关于键值对的额外信息
该数据的存活时间,0表示永远
存储字节数
存储的数据块(可直接理解为key-value结构中的value)
1、添加
(1)、无论如何都存储的setset

这个set的命令在memcached中的使用频率极高。set命令不但可以简单添加,如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。

可以通过“get 键名”的方式查看添加进去的记录:

set_get

如你所知,我们也可以通过delete命令删除掉,然后重新添加。

delete

(2)、只有数据不存在时进行添加的add

add

(3)、只有数据存在时进行替换的replace

replace

 2、删除

delete

可以看到,删除已存在的键值和不存在的记录可以返回不同的结果。

二、读取命令1、get

get命令的key可以表示一个或者多个键,键之间以空格隔开

get
2、gets gets

可以看到,gets命令比普通的get命令多返回了一个数字(上图中为13)。这个数字可以检查数据是否发生改变。当key对应的数据改变时,这个多返回的数字也会改变。

3、cas
cas即checked and set的意思,只有当最后一个参数和gets所获取的参数匹配时才能存储,否则返回“EXISTS”。cas

三、状态命令1、stats
stats
2、stats items statsitems
执行stats items,可以看到STAT items行,如果memcached存储内容很多,那么这里也会列出很多的STAT items行。

3、stats cachedump slab_id limit_num

我们执行stats cachedump 1 0 命令效果如下:statscachedump这里slab_id为1,是由2中的stats items返回的结果(STAT items后面的数字)决定的;limit_num看起来好像是返回多少条记录,猜的一点不错, 不过0表示显示出所有记录,而n(n>0)就表示显示n条记录,如果n超过该slab下的所有记录,则结果和0返回的结果一致。statscachedump1
通过stats items、stats cachedump slab_id limit_num配合get命令可以遍历memcached的记录。

4、其他stats命令
如stats slabs,stats sizes,stats reset等等使用也比较常见。statsother

四、其他常见命令
1、append
append在现有的缓存数据添加缓存数据,如现有缓存的key不存在服务器响应为NOT_STORED。

2、prepend
和append非常类似,但它的作用是在现有的缓存数据添加缓存数据。prepend
3、flush_all flush_all该命令有一个可选的数字参数。它总是执行成功,服务器会发送 “OK\r\n” 回应。它的效果是使已经存在的项目立即失效(缺省),或在指定的时间后。此后执行取回命令,将不会有任何内容返回(除非重新存储同样的键名)。 flush_all 实际上没有立即释放项目所占用的内存,而是在随后陆续有新的项目被储存时执行(这是由memcached的懒惰检测和删除机制决定的)。

flush_all の効果は、取得コマンドの実行時に、flush_all で設定された時間よりも更新時間が早いすべての項目が無視されることです。

4. その他のコマンド
memcached には、数値として保存された数値に対して、incr/decr コマンドを使用して演算を増減するなどのコマンドも多数あります。ここでは、開発でよく使用されるコマンドのみを示します。その他 一つ一つ例を挙げません。

もう 1 つの追加: .net Framework のいくつかの種類のキャッシュについて簡単に理解します

Web サイトにおけるキャッシュの重要性は疑いの余地がありません。 Web アプリケーション システムを開発するときに多くの ASP.NET 開発者が優先するキャッシュは、サードパーティのキャッシュ ソリューション (分散キャッシュ memcached、redis など) ではなく、.NET Framework によってすでに提供されているさまざまなキャッシュだと思います。 。私自身の開発経験に基づいて、.net Framework のキャッシュについての理解を話しましょう。

1. System.Web.Caching.Cache
asp.net 開発を行ったほとんどの人は、インスタンス化せずに、この名前空間でキャッシュを使用していると推定されます。もちろん、この名前空間の Cache クラスを使用してインスタンスを作成できます。独自のキャッシュ システムをカスタマイズする必要がある場合は、このクラスの初期化方法を完全に制御できます。 Cache の CRUD 補助クラス ライブラリを紹介する記事を数多く見てきましたが、そのほとんどは System.Web.Caching.Cache に関するものでした。

この名前空間で HttpRuntime.Cache を使用して、Web、コンソール、winform などのさまざまなマニフェストでキャッシュを実装することもでき、自分でインスタンス化する必要がないことに注意してください。 HttpRuntime.Cache は、以前は個人開発で頻繁に使用されていたクラスですが、現在は .net Framework 4.0 の拡張キャッシュ クラス MemoryCache を好みます。

2. 出力キャッシュ
ご存知のとおり、出力キャッシュは主にページ出力キャッシュとページ部分キャッシュに分かれています。端的に言うと、ページ全体または HTML の一部をキャッシュすることを意味します。元々は議論するほどのことではありませんでしたが、最近 dudu のこのブログを見て、なぜこれを使用しなかったのかが非常に重要であることに気づきました。この問題を前に見つけましたか?問題を見つける能力は、問題を解決する能力と同様に重要であり、場合によっては前者の方がさらに重要であるようです。

3. System.Runtime.Caching
MemoryCache は、現在個人開発で最も一般的に使用されているクラスであり、使用する前に System.Runtime.Caching を使用して参照する必要があります。 MemoryCache は、ObjectCache、IEnumerable、IDisposable から継承します。ここで、ObjectCache は抽象クラスです。 MemoryCache を使用したことのある人は、この MemoryCache に Default という属性があることを知っています。通常、これは次のように使用できます。

private static ObjectCache memCache = MemoryCache.Default; もちろん、public MemoryCache(string name, NameValueCollection config = null) コンストラクターを使用してキャッシュ オブジェクトを初期化することもできます。

次に、web.config ファイルで各 MemoryCache インスタンスのメモリ使用量クォータ スキームとクォータ チェック サイクルを構成できます。次の例については、

MSDN を参照してください。

コードをコピーします コードは次のとおりです。 :

t;
< /memoryCache>



これらの構成の重要性は、メモリ使用量の割り当てスキームを明確に指定できることです。実行する各 MemoryCache インスタンスのクォータ チェック期間。たとえば、構成を通じて、MemoryCache.Default インスタンスのメモリ クォータをオンデマンドで変更できます (キャッシュに利用できる最大メモリがいくらなのかはわかりませんが、それでも伝説的な 800M 程度である可能性があります)。キャッシュの有効期限戦略は他のキャッシュ フレームワークと似ていますが、System.Web.Caching.Cache との唯一の違いは、名前が CacheDependency ではなく
ChangeMonitor
であり、ファイルおよびディレクトリ ベースのキャッシュ依存関係戦略を提供することです。キャッシュの有効期限戦略についても議論する必要がありますが、私の個人的な開発はデータのキャッシュと置換に重点を置いており、比較的完璧な有効期限戦略ソリューションをまだ見つけていません。


http://www.bkjia.com/PHPjc/327884.html

www.bkjia.com

http://www.bkjia.com/PHPjc/327884.html技術記事コマンドの保存形式: コマンド名 キー フラグ exptime バイト データ ブロック パラメーターの説明は次のとおりです: コマンド名 キーの設定/追加/置換 キーワード フラグの検索 クライアントはキーを保存するために使用します...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。