存储命令的格式:
参数说明如下:
set/add/replace | |
查找关键字 | |
客户机使用它存储关于键值对的额外信息 | |
该数据的存活时间,0表示永远 | |
存储字节数 | |
存储的数据块(可直接理解为key-value结构中的value) |
这个set的命令在memcached中的使用频率极高。set命令不但可以简单添加,如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。
可以通过“get 键名”的方式查看添加进去的记录:
如你所知,我们也可以通过delete命令删除掉,然后重新添加。
(2)、只有数据不存在时进行添加的add
(3)、只有数据存在时进行替换的replace
2、删除可以看到,删除已存在的键值和不存在的记录可以返回不同的结果。
二、读取命令1、get
get命令的key可以表示一个或者多个键,键之间以空格隔开
2、gets
可以看到,gets命令比普通的get命令多返回了一个数字(上图中为13)。这个数字可以检查数据是否发生改变。当key对应的数据改变时,这个多返回的数字也会改变。
3、cas
cas即checked and set的意思,只有当最后一个参数和gets所获取的参数匹配时才能存储,否则返回“EXISTS”。
三、状态命令1、stats
2、stats items
执行stats items,可以看到STAT items行,如果memcached存储内容很多,那么这里也会列出很多的STAT items行。
3、stats cachedump slab_id limit_num
我们执行stats cachedump 1 0 命令效果如下:这里slab_id为1,是由2中的stats items返回的结果(STAT items后面的数字)决定的;limit_num看起来好像是返回多少条记录,猜的一点不错, 不过0表示显示出所有记录,而n(n>0)就表示显示n条记录,如果n超过该slab下的所有记录,则结果和0返回的结果一致。
通过stats items、stats cachedump slab_id limit_num配合get命令可以遍历memcached的记录。
4、其他stats命令
如stats slabs,stats sizes,stats reset等等使用也比较常见。
四、其他常见命令
1、append 在现有的缓存数据后添加缓存数据,如现有缓存的key不存在服务器响应为NOT_STORED。
2、prepend
和append非常类似,但它的作用是在现有的缓存数据前添加缓存数据。
3、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 という属性があることを知っています。通常、これは次のように使用できます。
次に、web.config ファイルで各 MemoryCache インスタンスのメモリ使用量クォータ スキームとクォータ チェック サイクルを構成できます。次の例については、
MSDN を参照してください。
www.bkjia.com