开源项目

知识点

相关文章

更多

最近更新

更多

Memcached set 添加或更新数据命令

2019-04-26 16:53|来源: 网路

Memcached set 命令

Memcached set 命令用于将 value(数据值) 存储在指定的 key(键) 中。

如果set的key已经存在,该命令可以更新该key所对应的原来的数据,也就是实现更新的作用。

语法:

set 命令的基本语法格式如下:

set key flags exptime bytes [noreply] 
value


参数说明如下:

  • key:键值 key-value 结构中的 key,用于查找缓存值。

  • flags:可以包括键值对的整型参数,客户机使用它存储关于键值对的额外信息 。

  • exptime:在缓存中保存键值对的时间长度(以秒为单位,0 表示永远)

  • bytes:在缓存中存储的字节数

  • noreply(可选): 该参数告知服务器不需要返回数据

  • value:存储的值(始终位于第二行)(可直接理解为key-value结构中的value)

实例

以下实例中我们设置:

  • key → com656463

  • flag → 0

  • exptime → 900 (以秒为单位)

  • bytes → 9 (数据存储的字节数)

  • value → memcached

set com656463 0 900 9
memcached
STORED

get com656463
VALUE com656463 0 9
memcached

END


输出

如果数据设置成功,则输出:

STORED


输出信息说明:

  • STORED:保存成功后输出。

  • ERROR:在保存失败后输出。

相关问答

更多
  • 我仍然不知道为什么memcached只能在命令行中运行,但我决定尝试使用Redis 。 安装完成后,一切顺利。 I still have no idea why memcached only works from the command line, but I decided to try Redis instead. After installing, everything works without a hitch.
  • 我实际上最终使用了twemproxy ,它应该根据运行状况检查来处理memcached节点的加/减。 它很容易设置,基本上为vcache创建了一个DNS记录,并且代码指向vcache:22122。 如果使用AWS,您可以执行相同的操作,但不是twemproxy,请设置弹性缓存集群,然后创建指向elasticache端点的CNAME dns条目。 这样您就不必进行单个代码更改,因为指向elasticache端点的CNAME dns条目仍将解析为vcache。 I actually ended up using ...
  • 来自memcached手册: EXPIRATION TIME:如果它是非零(Unix时间或从当前时间以秒为单位的偏移量),则保证客户端在到期时间到达后将无法检索此项目(按服务器时间测量)。 所以在到期时间之后应该为NULL。 如果发生,否则你在Memcached或这个库中发现了一个错误。 你确定你使用的是“Memcached”而不是“Memcache”。 从您链接的lib的来源: $this->client_type = class_exists('Memcache') ? "Memcache" : (cl ...
  • 你应该检查一下memcached服务是否在运行。 结果显示pid(进程ID)为-1,运行时间为0秒。 有一个实际的memcached服务需要在服务器上运行,您可以通过telnet到localhost上的端口11211来检查它是否正确侦听。 You should check if the memcached service is running. Your results show a pid (process id) of -1 and an uptime of 0 seconds. There is an ...
  • 对于任何有兴趣的人,我已经在Memcache Github上创建了一个线程, Will memcached工作可靠地用于实现锁定机制? 。 它解释了使用get和set一些常见警告以及如何使用add来避免这种情况。 如果您可以在自己喜欢的搜索引擎上使用memcache搜索distributed locking一些博客也会解释此问题。 还有一个相关的问题Memcached,Locking和Race Conditions可能有助于更清楚地了解memcache竞争条件。 以下是Memcache论坛对此的更多讨论: ...
  • memcached扩展不是PHP的标准组件,必须与PECL分开安装。 说明在线: http://php.net/memcached.installation The memcached extension is not a standard component of PHP, and must be installed separately from PECL. Instructions are online at: http://php.net/memcached.installation
  • 要使用memcached,您需要在ruby中配置正确的IP和端口号。 启动本地联网的memcached服务器: $ memcached -p 11211 & 现在,在Ruby中,需要库并在全局级别实例化Memcached对象: require 'memcached' $cache = Memcached.new("localhost:11211") 从这里的用法部分: http : //rubydoc.info/gems/memcached-northscale/0.19.5.4/file/README ...
  • 您必须在读取数据库时设置缓存条目,以便下次不必先读取数据库。 您将检查缓存,如果它不存在或以其他方式过期,那么您将回退到数据库读取,并重置密钥。 至于关键名称,它在很大程度上取决于类别的预期值。 如果if是一个简单的整数或字符串,我会使用像test.category:99或test.category:car这样的键。 如果它可能更多,编码它可能是有用的,所以它没有空格(比如,urlencode)。 最后,如果它比那更复杂 - test:category:{MD5(category)} 。 由于密钥只是对数据 ...
  • 要配置Redis以使其具有类似于memcached的缓存行为,您需要更新配置文件,如下所示: 设置maxmemory的值(以字节为单位) 将maxmemory-policy设置为allkeys-lru 你应该得到你想要的行为。 To configure Redis so it has a memcached-like cache behavior, you need to update the configuration file as follows: set a value for maxmemory ...
  • Memcache IO发生在getDelayed或fetchAll 。 getDelayed基本上说“我想要这些键,但我现在不需要它们”。 这样做的主要好处是它允许PHP在后台以并行方式执行此操作。 如果您知道稍后将要使用哪些键,您可以让PHP去获取它们,当您需要它们时,您可以调用fetchAll 。 如果PHP在其他事情上已经设法获取数据,那么当您调用fetchAll ,就没有等待了。 如果没有,则进程暂停,同时Memcached的数据完成传输。 一个非常愚蠢的例子是,如果你有两件事要做: 调整花费3秒钟 ...