首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >获取memcached中设置的所有密钥

获取memcached中设置的所有密钥
EN

Stack Overflow用户
提问于 2013-10-24 15:56:38
回答 4查看 195.1K关注 0票数 154

如何在memcached实例中设置所有密钥?

我试着用谷歌搜索,但除了PHP支持getAllKeys method之外,什么也没找到,这意味着它实际上是可以以某种方式做到这一点的。怎样才能在telnet会话中获得相同的信息?

我已经尝试了memcached cheat sheetMemcached telnet command summary中提到的所有与检索相关的选项,但它们都不起作用,我也找不到正确的方法来做到这一点。

注意:我目前正在开发中这样做,所以可以假设不会因为设置新的密钥或发生其他类似的竞争条件而出现问题,并且密钥的数量也将受到限制。

EN

回答 4

Stack Overflow用户

发布于 2016-08-11 01:48:43

在这里根据@mu 無回答。我已经写了一个缓存转储脚本。

该脚本转储memcached服务器的所有内容。它是在Ubuntu12.04和本地主机memcached上测试的,所以你的进度可能会有所不同。

代码语言:javascript
复制
#!/usr/bin/env bash

echo 'stats items'  \
| nc localhost 11211  \
| grep -oe ':[0-9]*:'  \
| grep -oe '[0-9]*'  \
| sort  \
| uniq  \
| xargs -L1 -I{} bash -c 'echo "stats cachedump {} 1000" | nc localhost 11211'

它的作用是遍历所有缓存片,并打印每个缓存片的1000个条目。

请注意此脚本的某些限制,例如,它可能无法扩展到5 5GB的缓存服务器。但它对于在本地机器上进行调试很有用。

票数 21
EN

Stack Overflow用户

发布于 2017-09-11 21:10:26

如果您安装了PHP & PHP-memcached,则可以运行

代码语言:javascript
复制
$ php -r '$c = new Memcached(); $c->addServer("localhost", 11211); var_dump( $c->getAllKeys() );'
票数 17
EN

Stack Overflow用户

发布于 2017-02-07 15:16:51

最简单的方法是使用python-memcached-stats包https://github.com/abstatic/python-memcached-stats

keys()方法应该可以让您开始工作了。

示例:

代码语言:javascript
复制
from memcached_stats import MemcachedStats
mem = MemcachedStats()

mem.keys()
['key-1',
 'key-2',
 'key-3',
 ... ]
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19560150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档