使用libmemcached的c++客户端
来源:互联网 发布:vue是什么软件 编辑:程序博客网 时间:2024/04/29 22:27
需要实现安装memcached, 以及libevent,本次我使用的libmemcached是 libmemcached-0.31.tar.gz 版本, 更高的版本编译出现一系列问题,暂且用这个。
解压完之后,在解压后的目录执行
.configure
make
make install
注意,安装完之后,libmemcached.so文件默认是安装在了 /usr/local/lib/ 目录下,但是gcc/g++在寻找动态链接库的时候,是从/usr/lib/ 目录找的,所以make install 之后,还需要
cp /usr/local/lib/libmemcached.so* /usr/lib/
全部复制到/usr/lib 目录,至于其他人说的修改环境变量、建立链接文件之类的,不如上面这个简单直接,虽然粗暴了点,但简单有效。
下面是一个客户端测试,
头文件 MemCachedClient.h
#ifndef MEMCACHEDCLIENT#define MEMCACHEDCLIENT #include <libmemcached/memcached.h>#include<iostream>#include<string.h>#include<time.h>#include <stdlib.h>#include <stdio.h>using std::string;using std::cout;using std::endl;class MemCachedClient{ public: ~MemCachedClient() { memcached_free(memc); }; MemCachedClient() { memcached_return rc; memcached_server_st *server = NULL; memc = memcached_create(NULL); server =memcached_server_list_append(server, "127.0.0.1", 11211, &rc); rc=memcached_server_push(memc,server); if (MEMCACHED_SUCCESS != rc) { cout <<"memcached_server_push failed! rc: " << rc << endl; } memcached_server_list_free(server); }; int Insert(const char* key, const char* value,time_t expiration = 3) { if (NULL == key || NULL == value) { return -1; } uint32_t flags = 0; memcached_return rc; rc = memcached_set(memc, key, strlen(key),value, strlen(value), expiration, flags); // insert ok if (MEMCACHED_SUCCESS == rc) { return 1; } else { return 0; } }; string Get(const char* key) { if (NULL == key) { return "no key"; } uint32_t flags = 0; memcached_return rc; size_t value_length; char* value = memcached_get(memc, key, strlen(key), &value_length, &flags, &rc); // get ok if(rc == MEMCACHED_SUCCESS) { return value; } return "no value"; }; private: memcached_st* memc; };#endif
#include<iostream>#include"MemCachedClient.h"using std::cout;using std::endl;int main(){ MemCachedClient mc; int result = mc.Insert("mem_key","/view/index?name=Jame"); string get_value = mc.Get("mem_key");cout << "get_value: " << get_value << endl; return 1;};
为了方便编写了Makefile文件
TARGET = testSOURCE = test.cc MemCachedClient.hCFLAG = -g3 -O0 -lmemcachedTARGET:g++ $(CFLAG) $(SOURCE) -o $(TARGET).phony:cleanclean:rm $(TARGET)
注意: 头文件中的Ip地址及端口号,必须修改为自己的memcached服务器的ip及port
0 0
- 使用libmemcached的c客户端
- 使用libmemcached的c++客户端
- memcachedb的C语言客户端libmemcached
- libmemcached的C-API访问memcached server
- c libmemcached连接memcached
- 封装 libmemcached 构建 memcached 客户端
- libmemcached C++使用示例
- 使用libmemcached访问Memcached
- 【Memcached】libmemcached API使用
- 使用连接池访问memcached(libmemcached)的完整例子
- libmemcached的安装
- libmemcached的Bug Patch
- libmemcached的调试
- libmemcached的头文件
- libmemcached的执行流程
- libmemcached
- Memcached/Libmemcached使用经验总结(一)
- 安装libmemcached遇到的问题
- 《Android源码设计模式解析与实战》——原型模式
- Servlet API中类的关系
- Android(二)遇到的小问题
- 详解 CALayer 和 UIView 的区别和联系
- sleep在windows下和linux的不同
- 使用libmemcached的c++客户端
- iOS推送之远程推送
- 视频流中的DTS/PTS到底是什么
- 深入浅出iOS函数式编程与响应式编程概念
- python在Windows下运行时编码问题
- Yii 2.0: How to implement cron in Yii 2
- Unity NGUI之ScrollView扩展-2
- 关于Android 中的Activity,Application和Task
- 大型网站架构系列:分布式消息队列(一)