memcache是一个缓存程序,可以有效缓存网站的数据查询,减轻服务器资源占用。memcache同样也适用于WordPress,相信有很多网站已经部署了memcache缓存程序,不过有时候我们希望清除memcache 缓存。下面是定时清除memcache 缓存及手工更新memcache缓存的方法。

手工清理memcache缓存的方法

SHH登陆,输入:telnet 127.0.0.1 11211 //127.0.0.1为服务器IP,如果你的memcache安装在远程服务器,请修改

按“ctrl+] ”

再按回车键

输入:flush_all

后回车

控制台显示OK,表示操作成功

说明:

1、清空所有键值

flush_all

注:flush并不会将items删除,只是将所有的items标记为expired,因此这时memcache依旧占用所有内存。

2、退出

quit

缓存管理命令

两个 memcached 命令用于监控和清理 memcached 实例。它们是 stats 和 flush_all 命令。

stats

stats 命令的功能正如其名:转储所连接的 memcached 实例的当前统计数据。在下例中,执行 stats 命令显示了关于当前 memcached 实例的信息:

STAT pid 22459                             进程ID

STAT uptime 1027046                        服务器运行秒数

STAT time 1273043062                       服务器当前unix时间戳

STAT version 1.4.4                         服务器版本

STAT pointer_size 64                       操作系统字大小(这台服务器是64位的)

STAT rusage_user 0.040000                  进程累计用户时间

STAT rusage_system 0.260000                进程累计系统时间

STAT curr_connections 10                   当前打开连接数

STAT total_connections 82                  曾打开的连接总数

STAT connection_structures 13              服务器分配的连接结构数

STAT cmd_get 54                            执行get命令总数

STAT cmd_set 34                            执行set命令总数

STAT cmd_flush 3                           指向flush_all命令总数

STAT get_hits 9                            get命中次数

STAT get_misses 45                         get未命中次数

STAT delete_misses 5                       delete未命中次数

STAT delete_hits 1                         delete命中次数

STAT incr_misses 0                         incr未命中次数

STAT incr_hits 0                           incr命中次数

STAT decr_misses 0                         decr未命中次数

STAT decr_hits 0                           decr命中次数

STAT cas_misses 0    cas未命中次数

STAT cas_hits 0                            cas命中次数

STAT cas_badval 0                          使用擦拭次数

STAT auth_cmds 0

STAT auth_errors 0

STAT bytes_read 15785                      读取字节总数

STAT bytes_written 15222                   写入字节总数

STAT limit_maxbytes 1048576                分配的内存数(字节)

STAT accepting_conns 1                     目前接受的链接数

STAT listen_disabled_num 0

STAT threads 4                             线程数

STAT conn_yields 0

STAT bytes 0                               存储item字节数

STAT curr_items 0                          item个数

STAT total_items 34                        item总数

STAT evictions 0                           为获取空间删除item的总数

此处的大多数输出都非常容易理解。稍后在讨论缓存性能时,我还将详细解释这些值的含义。至于目前,我们先来看看输出,然后再使用新的键来运行一些 set 命令,并再次运行stats 命令,注意发生了哪些变化。

flush_all

flush_all 这个最简单的命令仅用于清理缓存中的所有名称/值对。如果您需要将缓存重置到干净的状态,则 flush_all 能提供很大的用处。下面是一个使用 flush_all 的例子:

set userId 0 0 5
55555
STORED
get userId
VALUE userId 0 5
55555
END
flush_all
OK
get userId
END

定时清除memcache 缓存缓存方法

编写PHP脚本

$mem = new Memcache;
$mem->connect(‘127.0.0.1′,’11211’);
$mem->flush();
?>

加入任务计划

crontab -e

00 02 * * * /var/www/html/memcached/flush.php &>/dev/null

这样,每天凌晨2点,就会把’127.0.0.1’上的memcache清空。

这里的清空是指,让所有的缓存失效,并不能真正的把memcache所占用的内存给清空,如果需要清空内存,则需要重启memcache服务。

重启memcache服务命令

service memcache restart

如果有多台机器安装了memcache,需要都清除memcache缓存,那么运行下面命令即可

$ echo “flush_all” | nc localhost 11211