memcached 批量删除脚本

memcached一般是很多服务器一起做缓存的,而且每个数据都是通过客户端散列到各个服务器。如果想通过telnet删除一个key可就麻烦了,你可能需要一个一个的找,2-3个服务器还行,如果是几十个的时候就麻烦了。

在这里给出一个脚本来执行这样的任务。

#!/bin/sh
# description delete entries by batch mode.
# useage ./clear.sh key1 key2 key3 ...
KEYS=$@
HOSTS=("127.0.0.1" "127.0.0.1" "127.0.0.01" "127.0.0.1")
PORTS=(10000 10001 10002 10003)
if [ $# = 0 ];then
echo "key set is empty!"
exit 0
fi
HOSTS_LEN=${#HOSTS[@]}
for ((p=0;p<$#;p++)); do
for ((i=0;i<HOSTS_LEN;i++)); do
(
#sleep 1
#echo "delete ${KEYS[$p]}"
echo "stats"
sleep 1
echo "quit"
)|telnet ${HOSTS[$i]} ${PORTS[$i]}
echo
done
done
echo "delete key sets [$@] finished!"

 memcache batch delete

memcached batch delete

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>