今天在做一个Memcache的session测试,但是在测试的过程中,发现Memcache没有一个比较简单的方法可以直接象redis那样keys *列出所有的Session key,并根据key get对应的session内容,于是,我开始查找资料,翻出来的大部分是一些memcache常用命令等,但是对列出key的办法,讲解却不多,于是来到google,找到了一个国外的资料
具体的内容我套用我的测试环境中,操作如下
1. cmd上登录memcache
telnet 10.73.13.155 1720
2. 列出所有keys
STATS items STAT items:1:number 41430 STAT items:1:age 36512 STAT items:1:evicted 20 STAT items:1:evicted_nonzero 20 STAT items:1:evicted_time 283142 STAT items:1:outofmemory 0 STAT items:1:tailrepairs 0 STAT items:1:reclaimed 10402378 STAT items:1:expired_unfetched 8908245 STAT items:1:evicted_unfetched 13 STAT items:2:number 33213085 STAT items:2:age 59197 STAT items:2:evicted 10697552 STAT items:2:evicted_nonzero 10697552 STAT items:2:evicted_time 59198 STAT items:2:outofmemory 0 STAT items:2:tailrepairs 0 STAT items:2:reclaimed 2560738307 STAT items:2:expired_unfetched 2522844623 STAT items:2:evicted_unfetched 10416496 ... STAT items:14:number 396 STAT items:14:age 82483 STAT items:14:evicted 330 STAT items:14:evicted_nonzero 330 STAT items:14:evicted_time 85169 STAT items:14:outofmemory 0 STAT items:14:tailrepairs 0 STAT items:14:reclaimed 14664 STAT items:14:expired_unfetched 709 STAT items:14:evicted_unfetched 92 ...
3. 通过itemid获取key
基本上每一个items id(组)里面的key的前缀是相同的。本例中items id为14,第2个参数为列出的长度,0为全部列出。
stats cachedump 8 0
ITEM user_channel_ids_2294580834 [341 b; 1456726791 s] ITEM user_channel_ids_5197287759 [341 b; 1456880434 s] ITEM user_channel_ids_1859179390 [341 b; 1456880434 s] ITEM user_channel_ids_2665075984 [341 b; 1455895155 s] ITEM user_channel_ids_2639521071 [341 b; 1456880431 s] ITEM user_channel_ids_5799779996 [341 b; 1456576610 s] ITEM user_channel_ids_1800406347 [373 b; 1456808894 s] ITEM user_channel_ids_5645382562 [341 b; 1456878060 s] ITEM user_channel_ids_5854482532 [357 b; 1456880427 s] ITEM user_channel_ids_3192133550 [357 b; 1456810596 s] ITEM user_channel_ids_3605489290 [341 b; 1456843284 s] ITEM user_channel_ids_5837431613 [373 b; 1456829459 s] ...
4. 通过get获取key值
上面的stats cachedump命令列出了我的session key,接下来就用get命令查找对应的session值。
get user_channel_ids_2917301923 VALUE user_channel_ids_2917301923 4 341 a:3:{s:2:"id";a:17:{i:0;s:4:"1760";i:1;s:4:"9999";i:2;s:4:"1552";i:3;s:4:"1199";i:4;s:4:"4188";i:5;s:4:"1988";i:6;s:4:"4564";i:7;s:4:"2088";i:8;s:4:"4388";i:9;s:4:"5988";i:10;s:4:"5088";i:11;s:4:"4288";i:12;s:4:"4688";i:13;s:4:"2488";i:14;s:4:"3288";i:15;s:4:"5288";i:16;s:4:"5188";}s:3:"uid";s:10:"2917301923";s:4:"time";s:10:"1449203990";} END