sanhutrees 发表于 2015-11-18 11:54:48

Memcache 丢失数据问题


    今天突然发现memcache里的数据部分会丢失,我是批量插入2000+个数据,程序在运行时插入的第一个数据有值,但是程序运行完毕,第一个数据就没值了,后经过检查发现,memcache分配的内存默认为64M,满了之后会自动删除部分未过期的数据,导致上述情况。后调整为2G,问题解决。特记下memcache中stats查看的数据含义:


php中查看代码:
<?php
$host = $_REQUEST['host'];
$mem = new Memcache;
$mem->connect ( $host, 11211 );
print_r ( $mem->getStats() );
?>或者连上memcache,然后stats,详细如下:

mqq@32_167_game:~> telnet server port

Trying 172.16.32.166...

Connected to 172.16.32.166.

Escape character is '^]'.

stats

STAT pid 26530

STAT uptime 5807

STAT time 1258643806

STAT version 1.2.2

STAT pointer_size 64

STAT rusage_user 12.372773

STAT rusage_system 24.233514

STAT curr_items 72820

STAT total_items 5526

STAT bytes 95306264

STAT curr_connections 115

STAT total_connections 1

STAT connection_structures 116

STAT cmd_get 12507

STAT cmd_set 5526

STAT get_hits 12498

STAT get_misses 9

STAT evictions 0

STAT bytes_read 7363968

STAT bytes_written 15636889

STAT limit_maxbytes 2147483648

STAT threads 1

END





pid
memcache服务器的进程ID
uptime
服务器已经运行的秒数
time
服务器当前的unix时间戳
version
memcache版本
pointer_size
当前OS的指针大小(32位系统一般是32bit)
rusage_user
进程的累计用户时间
rusage_system
进程的累计系统时间
curr_items
服务器当前存储的items数量
total_items
从服务器启动以后存储的items总数量
bytes
当前服务器存储items占用的字节数
curr_connections
当前打开着的连接数
total_connections
从服务器启动以后曾经打开过的连接数
connection_structures
服务器分配的连接构造数
cmd_get
get命令(获取)总请求次数
cmd_set
set命令(保存)总请求次数
get_hits
总命中次数
get_misses
总未命中次数
evictions
为获取空闲内存而删除的items数(分配给memcache的空间用满后需要删除旧的items来得到空间分配给新的items)
bytes_read
总读取字节数(请求字节数)
bytes_written
总发送字节数(结果字节数)
limit_maxbytes
分配给memcache的内存大小(字节)
threads
当前线程数


版权声明:本文为博主原创文章,未经博主允许不得转载。
页: [1]
查看完整版本: Memcache 丢失数据问题