首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 其他教程 > 系统运维 >

memcached flush_al的功用

2012-09-02 
memcached flush_al的作用memcached 中一个命令flush_all 执行前后,使用stats查看的状态完全一样,刚开始以

memcached flush_al的作用

memcached 中一个命令flush_all 执行前后,使用stats查看的状态完全一样,刚开始以为是没执行成功,学习完memcached的工作原理后发现了flush_all执行完的效果是这样的:

“flush_all”命令有一个可选的数字参数。它总是执行成功,服务器会发送“OK\r\n”回应。它的效果是使已经存在的项目立即失效(缺省),或在指定的时间后。此后执行取回命令,将不会有任何内容返回(除非重新存储同样的键名)。flush_all 实际上没有立即释放项目所占用的内存,而是在随后陆续有新的项目被储存时执行。flush_all 效果具体如下:它导致所有更新时间早于flush_all所设定时间的项目,在被执行取回命令时命令被忽略。


一下是一端c语言测试memcached的一段代码:

01#include “stdio.h”02#include “stdlib.h”03#include “string.h”04#include “libmemcached/memcached.h”05//gcc -o cc cc.c  -L /usr/local/lib -lmemcached06int main(int argc, char *argv[])07{08memcached_st *memc;09memcached_return rc;10memcached_server_st *servers;11char value[8191];12//connect multi server13memc = memcached_create(NULL);14servers = memcached_server_list_append(NULL, “localhost”, 11211, &rc);15//servers = memcached_server_list_append(servers, “localhost”, 11212, &rc);16rc = memcached_server_push(memc, servers);17memcached_server_free(servers);18//Save multi data19size_t i;20char *keys[]= {“key1″, “key2″, “key3″};21size_t key_length[]= {4, 4, 4};22char *values[] = {“This is c first value”, “This is c second value”, “This is c third value”};23size_t val_length[]= {21, 22, 21};24for (i=0; i <3; i++)25{26rc = memcached_set(memc, keys[i],27key_length[i], values[i], val_length[i], (time_t)180,28(uint32_t)0);29if (rc == MEMCACHED_SUCCESS)30{31printf(“Save key:%s data:”%s” success.n”,keys[i], values[i]);32}33}34 35char return_key[MEMCACHED_MAX_KEY];36size_t return_key_length;37char *return_value;38size_t return_value_length;39uint32_t flags;40rc = memcached_mget(memc, keys, key_length, 3);41while ((return_value = memcached_fetch(memc, return_key,&return_key_length, &return_value_length, &flags, &rc))) {42if (rc == MEMCACHED_SUCCESS)43{44printf(“Fetch key:%s data:%sn”, return_key, return_value);45}46}47//Delete multi data48for (i=0; i <3; i++)49{50rc = memcached_set(memc, keys[i], key_length[i],51values[i], val_length[i], (time_t)180, (uint32_t)0);52rc = memcached_delete(memc, keys[i],53key_length[i], (time_t)0);54if (rc == MEMCACHED_SUCCESS)55{56printf(“Delete %s successn”, keys[i], values[i]);57}58}59//free60memcached_free(memc);61return 0;62}

热点排行