首先啓動memcached ios
memcached -m 512 -p 11211 -vv數據庫
memcached -m 512 -p 11212 -vvapp
該例分配給 memcached 的可用內存 512M, 監聽 11211 端口, 另一個監聽11212端口, 顯示詳細的運行信息。memcached
使用方法,我將用代碼+註釋來講明, test.cppui
1 #include <iostream> 2 #include <string> 3 #include <libmemcached/memcached.h> 4 5 using namespace std; 6 7 int main(int argc, char** argv) 8 { 9 memcached_st *memc; 10 memcached_return rc; 11 memcached_server_st *servers; 12 time_t expiration = 0; 13 uint32_t flags; 14 15 memc = memcached_create(NULL); 16 // 把memcached加入列表, 假如開了兩個memcached,以下方法 17 servers = memcached_server_list_append(NULL, "localhost", 11211, &rc); 18 servers = memcached_server_list_append(servers, "localhost", 11212, &rc); 19 rc=memcached_server_push(memc, server); 20 21 // 使用一致性哈希 http://blog.csdn.net/sparkliang/article/details/5279393 22 // http://stackoverflow.com/questions/16757511/how-to-use-consistent-hashing-in-memcached-c-client/18482345#18482345 23 memcached_return_t rc2 = memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_KETAMA, 1); 24 25 26 string key = "keyyy"; 27 string value = "123456"; 28 size_t value_length = value.length(); 29 size_t key_length = key.length(); 30 31 //把數據保存到memcached 32 rc= memcached_set(memc, key.c_str(), key.length(), value.c_str(), value.length(), expiration, flags); 33 34 35 //提取數據 36 char* result = memcached_get(memc, key.c_str(), key_length, &value_length, &flags, &rc); 37 if(rc!=MEMCACHED_SUCCESS) 38 { 39 // 若是是結合數據庫的話 40 // 此步應該去數據庫查詢,而後把結果保存一份到memcached 41 } 42 43 44 //刪除數據 45 rc= memcached_delete(memc,key.c_str(),key_length,expiration); 46 47 48 //釋放 49 memcached_server_list_free(server); 50 memcached_free(memc); 51 52 return 0; 53 54 }
g++ test.cpp -lmemcachedspa