magent实现memcached集群的一个问题
2017-01-23 15:59
453 查看
之前我们小组封装了一个memcached类库,里面有一个名为RemoveStartWith的方法可以根据起始字符串删除所有节点中负责键值规则的缓存项。它实现的原理就是通过stats命令获取每个节点的所有缓存键值然后逐一匹配。使用magent后这个方法就不起作用了,因为magent并不支持stats命令。查看了magent.c源代码:
要让magent支持stats命令需要作出一定的修改,主要包括在conn结构中的flag结构新增一个stats相关命令、修改发送请求的do_transcation函数实现、修改处理请求的process_get_response函数实现。
} else if (ntokens >= 2 && (strcmp(tokens[COMMAND_TOKEN].value, "stats") == 0)) { /* END\r\n */ char tmp[128]; out_string(c, "memcached agent v" VERSION); for (i = 0; i < matrixcnt; i ++) { snprintf(tmp, 127, "matrix %d -> %s:%d, pool size %d", i+1, matrixs[i].ip, matrixs[i].port, matrixs[i].used); out_string(c, tmp); } out_string(c, "END"); skip = 1; }
要让magent支持stats命令需要作出一定的修改,主要包括在conn结构中的flag结构新增一个stats相关命令、修改发送请求的do_transcation函数实现、修改处理请求的process_get_response函数实现。
相关文章推荐
- 分布式缓存redis方案与memcached方案的选择
- memcached的优缺点
- 【memcached】简介
- memcached笔记
- ibatis.cache接口实现:RedisCache,MemcachedCache,EhcacheCache
- memcached缓存实例
- memcached自启动
- centos下memcached安装
- Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
- Memcached 未授权访问漏洞及加固
- Ubuntu安装memcached文档(php7.0)
- centos安装memcache
- WDCP安装memcache、mysqli、PDO_MYSQL、mysql innodb、libmc
- memcached
- Memcached全攻略
- memcached基础-安装和基本是应用
- 小白谈memcache和memcached的区别
- 分布式锁实现方式三 基干Memcache mutex设计模式
- memcached编译安装报错 ,提示checking build system type... Invalid configuration `x86_64-unknown-linux-': machine `x86_64-unknown-linux' not recognized configure: error: /bin/sh ./config.sub x86_64-unknown-linu
- NoSQL四种——kv存储(memcache,Riak),列存储(Cassandra,Hbase),文档类(mongoDB,CouchDB),图数据库(neo4j)