memcached 使用

1、Memcached简介

      Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载。它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。

2、客户端

     许多语言都实现了连接memcached的客户端,其中以Perl、PHP为主。仅仅memcached网站上列出的语言就有:

Perl、PHP、Python、C#、C/C++等,

本文主要对于C/C++客户端 libmemcached 的主要库函数做简单介绍。

3、libmemcached 库

   A、最常用的三个结构体

      a、memcached_st

         对于memcached的操作都是基于些结构体,用于保存连接信息。

      b、memcached_result_st

         用于存储一个memcached中的存储对象。

      c、memcached_return_t

         用于存储返回函数的返回信息。

   B、常用函数总结

      a、memcached_st * memcached_create(memcached_st *ptr);

         该函数用于创建一个memcached_st结构体,ptr可以为NULL,为NULL时,返回一个自动分配的结构体,若失败返回NULL。

      b、memcached_st * memcached_clone(memcached_st * des,memcached_st * source);

         该函数用于复制一个memcached_st结构体,两指针均可为NULL,source为空时,函数的作用同memcached_create()。

      c、void memcached_servers_reset(memcached_st *ptr);

         该函数用于清空memcached_st的服务器列表。

      d、void memcached_free(memcached_st *ptr);

         该函数用于释放ptr所占的资源。

      e、memcached_st * memcached(char * str,uint32_t len);

         该函数用于根据配置字符串,构造一个memcached_st结构体,str为配置信息,len为str的长度。

      f、memcached_return_t memcached_delete(memcached_st *ptr,const char* key,size_t key_length,time_t expiration);

         memcached_return_t memcached_delete_by_key(memcached_st *ptr,const char* group_key,size_t group_key_length,const char* key,size_t key_length,time_t expiration);

         该函数用于删除某个值,删除后,值被加入删除队列,此时相应的值不能被获取,也不能新增和更新,但可以SET,过期的key值,会使此函数失败。

      g、memcached_result_st * memcached_fetch_result(memcached_st *ptr,memcached_result_st *result,memcached_return_t *error);

        该函数一般用在memcached_mget()函数之后,用于获取结果集中的一条结果。

      h、char * memcached_get(memcached_st *ptr,const char *key,size_t key_length,size_t * value_length,unit32_t * flags,memcached_return_t *error);

        该函数用于获取一个key相对应的值,返回的值需要自己去释放空间。失败时返回NULL。

      i、char * memcached_mget(memcached_st *ptr,const char * const *key,const size_t key_length,size_t number_of_keys);

        该函数用于获取多个key的值,同时获取多个key的值时,此函数速度较快,此函数是异步的。

      j、const char * memcached_result_key_value(memcached_result_st *result);

        返回当前结果对象的key值。

      k、const char * memcached_result_value(memcached_result_st *result);

        返回当前结果对象的值。

      l、memcached_return_t memcached_set(memcached_st *ptr,const char *key,size_t key_length,const char *value,size_t value_length,time_t expiration,unit32_t flags);

        当前服务器上没有相应的key值时,新建key值并写入value,当有key值时,则重写value,一般都会成功,除非发生了网络错误。

      m、memcached_return_t memcached_add(memcached_st *ptr,const char *key,size_t key_length,const char *value,size_t value_length,time_t expiration,unit32_t flags);

        向服务器上添加一个对象,如果已经存在则出错,否则存储。

      n、memcached_return_t memcached_replace(memcached_st *ptr,const char *key,size_t key_length,const char *value,size_t value_length,time_t expiration,unit32_t flags);        

        替换服务器上的一个对象,如果不存在,则报错。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值