如何获取memcached中设置的所有键?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (43)

我如何获得在我的memcached实例中设置的所有密钥?

我尝试了谷歌搜索,但除了PHP支持一种getAllKeys方法,没有发现太多,这意味着它实际上可以以某种方式做到这一点。

那么,如何在telnet会话中获得相同的内容?

我已经尝试了memcached作弊表Memcached telnet命令摘要中提到的所有与检索有关的选项,但是它们都不起作用,并且我无法找到正确的方法来执行此操作。

提问于
用户回答回答于

找到了一条路,多亏了链接在这里

首先,Telnet到你的服务器:

telnet 127.0.0.1 11211

接下来,列出获取板ID的项:

stats items
STAT items:3:number 1
STAT items:3:age 498
STAT items:22:number 1
STAT items:22:age 498
END

“Item”之后的第一个数字是板块ID。为每个板坯id请求缓存转储,并限制要转储的最大键数:

stats cachedump 3 100
ITEM views.decorators.cache.cache_header..cc7d9 [6 b; 1256056128 s]
END

stats cachedump 22 100
ITEM views.decorators.cache.cache_page..8427e [7736 b; 1256056128 s]
END
用户回答回答于

memdump

有一个memdump命令(memcdump在Ubuntu中的一部分libmemcached-tools),例如:

memdump --servers=localhost

它将返回所有键或在Bash中转储所有项的统计信息,语法是:

exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}

相关:在纯粹的bash中编写Redis客户端(这是Redis,但非常类似的方法)

memcached的工具

在最近的版本中memcached也有memcached-tool命令,例如

memcached-tool localhost:11211 dump | less

它会转储所有的键和值。

bash

要在Bash shell中转储所有密钥,请尝试:

exec {memcache}<>/dev/tcp/localhost/11211; printf "stats items\nquit\n" >&${memcache}; cat <&${memcache}

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励