Memcached touch在AWS Elasticache上失败



我正在尝试使用Memcached "触摸"命令来重置过期时间,但我始终得到一个通用的错误响应。我已经将事情简化为使用telnet,并且我有一个非常简单的用例来演示这个问题。

set TestKey 0 60 9
TestValue
STORED
get TestKey
VALUE TestKey 0 9
TestValue
END
touch TestKey 300
ERROR
get TestKey
VALUE TestKey 0 9
TestValue
END

在上面的代码片段中,我认为我正在缓存一个值"TestValue"输入"testkey"键,并设置60秒的超时时间。然后读取值(使用键),这表明它是正确存储的。我尝试使用touch将过期设置为300秒,但我得到一个响应:ERROR。最后,我再次获得该值(主要是为了证明整个测试发生在原始值超时之前)。

额外的细节:如果我尝试触摸一个不存在的键,我也会得到ERROR,或者使用gat或gats的命令(获取和触摸)

我试着确保我所有的命令都是按照https://github.com/memcached/memcached/blob/master/doc/protocol.txt

格式化的我是否错误地使用了这些命令?Memcached的AWS ElastiCache缺乏对触摸的支持吗?(我找不到任何文档断言它有或没有)

弄清楚了——我们运行的是1.4.5版本的memcached引擎,但显然touch在1.4.24版本之前不完全支持(至少在二进制模式之外)。

升级到最新的引擎版本(1.6.12)解决了这个问题。

相关内容

最新更新