• 使用libmemcached操作memcached


    首先启动memcached 

    memcached -m 512 -p 11211 -vv

    memcached -m 512 -p 11212 -vv

    该例分配给 memcached 的可用内存 512M, 监听 11211 端口, 另外一个监听11212端口, 显示详细的运行信息。

     

    使用方法,我将用代码+注释来说明, test.cpp

     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 -lmemcached

     

     

     

  • 相关阅读:
    吉他谱----see you again
    web----tcp三次握手
    python shell 执行
    python jieba
    NLP gensim 相似度计算
    linux shell expect 自动交互脚本
    docker 安装镜像
    数据库 MySQL 数据导入导出
    爬虫 puppeteer
    Linux ssh相关
  • 原文地址:https://www.cnblogs.com/yemsheng/p/3306986.html
Copyright © 2020-2023  润新知