使用libmemcached操做memcached

 

首先啓動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

相關文章
相關標籤/搜索