實際應用中,有時候需要將memcached中所有的數據dump出來,memcached本身只提供了stats cachedump $slabId $limit接口,但不能一次將所有的key dump出來,藉助libmemcached的memdump工具,可以將所有的key一次性dump出來。
首先,查看一下memdump的幫助信息:
[root@localhost bin]# ./memdump -h
memdump v1.0
Dump all values from one or many servers.
Current options. A '=' means the option takes a value.
--version
Display the version of the application and then exit.
--help
Display this message and then exit.
--quiet
stderr and stdin will be closed at application startup.
--verbose
Give more details on the progression of the application.
--debug
Provide output only useful for debugging.
--servers=
List which servers you wish to connect to.
--hash=
Select hash type.
--binary
Switch to binary protocol.
--username=
Username to use for SASL authentication
--password=
Password to use for SASL authentication
[root@localhost bin]# ./memdump --servers=127.0.0.1:11211
[root@localhost bin]# ./memdump --servers=127.0.0.1:11211,127.0.0.1:11212
已知的問題:
在我的虛擬機CentOS 5.5上,裝的libmemcached-1.0.2,其中memdump是v1.0版,會報以下錯誤:
Failed to dump keys: SERVER HAS FAILED AND IS DISABLED UNTIL TIMED RETRY, host: 127.0.0.1:11211 -> libmemcached/connect.cc:592
在公司的開發機上測試是無問題的。
相關鏈接:
libmemcached:http://libmemcached.org/