手机版

常见Memcached命令和指令的详细说明

时间:2021-11-18 来源:互联网 编辑:宝哥软件园 浏览:

存储命令的格式:命令名关键字标志exptime bytesdata block参数描述如下:命令名set/add/replacekey search关键字标志客户端使用它来存储有关键值对exptime此数据生存期的附加信息。0表示永久存储的字节数。数据块(可以直接理解为键值结构中的值)1存储的数据块)1。添加(1)存储的器械包set

命令集在memcached中经常使用。Set命令不仅可以简单添加,如果set的键已经存在,还可以更新该键对应的原始数据,即实现更新功能。您可以通过“获取密钥名称”查看添加的记录:set_get

如您所知,我们也可以使用delete命令删除它,然后再次添加它。delete

(2)仅当数据不存在时添加add

(3)仅在数据存在时替换replace

2.删除delete

可以看出,删除现有的键值和不存在的记录会返回不同的结果。第二,读命令1。get get命令的键可以表示一个或多个键,键之间用空格分隔get

getgets

可以看到get命令比普通的get命令多返回一个数字(上图中的13)。这个号码可以检查数据是否有变化。当按键对应的数据发生变化时,返回的数字也会发生变化。3.cas cas表示已检查并设置,只有当最后一个参数与get获得的参数匹配时才能存储,否则返回“EXISTS”。cas

三.状态命令1。STATS stats

2、统计项目statsitems

执行STAT项目,您可以看到STAT项目行。如果memcached存储了很多内容,这里会列出很多statitems行。3.stats cachedump slab_id limit_num执行stats cachedump 1 0命令的效果如下:statscachedump

这里,slab_id为1,由STAT项在2中返回的结果(STAT items后的数字)决定;limit_num似乎是返回了多少条记录,这是一个很好的猜测,但是0表示显示了所有记录,而n(n0)表示显示了n条记录。如果n超过板下的所有记录,则结果与0返回的结果一致。statscachedump1

Memcached记录可以通过stats items、stats cachedump slab_id limit_num和get命令遍历。4.其他统计命令,如统计板,统计大小,统计重置等也是常用的。statsother

第四,其他常用命令1。追加append

在现有缓存数据之后添加缓存数据,如果现有缓存密钥不存在,服务器将响应NOT_STORED。2.prepend与append非常相似,但其功能是在现有缓存数据之前添加缓存数据。prepend

3、同花顺flush_all

该命令有一个可选的数字参数。它总是成功的,并且服务器将发送一个“OK\r\n”响应。其效果是立即(默认)或在指定时间后使现有项目无效。执行检索命令后,将不返回任何内容(除非重新存储相同的键名)。事实上,flush_all并不会立即释放项目占用的内存,而是在新项目一个接一个存储时执行(这是由memcached的惰性检测和删除机制决定的)。flush_all的效果是,当执行检索命令时,它会导致更新时间早于flush_all设置的时间的所有项目被忽略。4.其他命令memcached也有很多命令。例如,incr/decr命令可用于增加或减少存储的字符数等。这里只列出了开发和运维中经常用到的命令,其他就不一一说明了。补充:毫无疑问,在几个缓存网站中简单地理解缓存的重要性。net框架。我认为ASP.NET很多开发者在开发web应用时优先考虑的缓存不是第三方缓存解决方案(比如分布式缓存memcached、redis等)。),但是已经提供了各种缓存解决方案。net框架。下面是我自己的开发经验来谈谈对中缓存的理解。net框架。1.系统。Web . Caching.Cache估计大多数做过ASP.NET开发的人都使用过这个命名空间下的缓存,所以我们可以直接使用HttpContext的实例。当前。缓存但不实例化它。当然,允许在这个命名空间中实例化cache类,如果需要自定义自己的Cache系统,可以完全控制如何初始化这个类。我在花园里看到过很多关于Cache CRUD辅助类库的文章,大部分都是针对System的。需要注意的是,我们也可以使用HttpRuntime。缓存在这个命名空间中,实现web、console、winform等不同形式的缓存。我们不需要实例化自己。HttpRuntime。缓存以前是个人开发中使用较多的一个类,但现在更喜欢中的增强缓存类MemoryCache。net framework4.0. 2。输出缓存众所周知,输出缓存主要分为页面输出缓存和页面部分缓存。说白了就是缓存整个页面的html或者部分html,不值得讨论。但是最近看了嘟嘟的这个博客,突然意识到用起来真的很讲究。为什么我之前没有发现这个问题?似乎发现问题的能力和解决问题的能力一样重要,有时候前者更重要。3.系统。运行时。缓存现在个人开发中最常用的类来自这个命名空间,所以有必要参考使用System。运行时。使用前缓存。MemoryCache继承自ObjectCache、ienumerable和idisposable,其中objectcache是一个抽象类。每个使用过MemoryCache的人都知道,这个MemoryCache有一个名为Default的属性,通常可以按如下方式使用:private static object cache memcache=memory cache . Default;当然,我们也可以通过公共内存缓存的构造函数(字符串名称,namevaluecollectionconfig=null)初始化cache对象。然后,我们可以在web.config文件中为每个MemoryCache实例配置内存使用配额方案和配额检查周期。以下例子参考MSDN:复制代码如下:system。runtime.caching memory cache命名缓存添加名称=' default ' cache memory limit MB=' 10 '轮询间隔=' 0033600233。3000'/名称内存/内存缓存/系统。运行时。缓存。这些配置的意义在于,可以明确指定每个内存缓存实例运行的内存使用配额方案和配额检查周期。例如,我们可以更改MemoryCache的内存配额。默认实例根据需要通过配置(我不知道缓存的最大可用内存是多少,但图例中可能还是800M左右)。过期策略与其他缓存框架类似,只是它的名称是ChangeMonitor而不是CacheDependency,并且它提供了基于文件和目录的缓存依赖策略。

有必要讨论缓存过期策略。然而,在个人开发中,强调数据缓存和替换。目前,到期策略没有完美的解决方案。

版权声明:常见Memcached命令和指令的详细说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。