首页 > 其他分享 >libmemcached API介绍

libmemcached API介绍

时间:2023-06-08 21:04:16浏览次数:48  
标签:const 介绍 st API key memcached ptr libmemcached size


有关memcached的C语言接口——libmemcached的介绍: 详情参见: http://docs.libmemcached.org/index.html

   1.        创建和删除memcached_st结构。


#include <libmemcached/memcached.h>

memcachd_st ;该结构可以静态创建也可以由memcached_create动态创建。


memcached_st* memcached_create(memcached_st *ptr)

ptr不为空时是静态创建,如果ptr为空,那么该函数返回一个memcached_st结构。

 

void memcached_free(memcached_st *ptr)

释放memcached_st结构所用的内存,删除memcached_st。

 

memcached_st* memcached_clone(memcached_st *destination, memcached_st *source)

克隆一个memcached_st结构;如果source为空,那么其作用和memcached_create一样,如果destination为空,则该函数的返回值将会返回一个和source一样的memcached_st结构。

 

void memcached_servers_reset(memcached_st)

将memcached_st所拥有与服务器的连接全都断开。

 

Compile and link with –lmemcached

2.    Memcached_return_t的返回值。

MEMCACHED_SUCCESS表示操作成功,其他均表示错误;其他错误的详情参考:http://docs.libmemcached.org/error_messages.html

3.       增加和减少值。

#include <libmemcached/memcached.h>

memcached_return_t memcached_increment (memcached_st *ptr, const char *key, size_t key_length, unsigned int offset, uint64_t *value)

 

memcached_return_t memcached_decrement (memcached_st *ptr, const char *key, size_t key_length, unsigned int offset, uint64_t *value)

offset是其增加或者减少的数值,改变后的值通过value指针返回。

其他增加和减少操作参见:

http://docs.libmemcached.org/memcached_auto.html

4.       从服务器获取值。

#include <libmemcached/memcached.h>

char * memcached_get(memcached_st *ptr, const char *key, size_t key_length, size_t *value_length, uint32_t *flagsmemcached_return_t *error);

一次通过一个键获取一个值。

memcached_return_t memcached_mget(memcached_st *ptr, const char * const *keys, const size_t *key_length, size_t number_of_keys)

memcached_result_st * memcached_fetch_result(memcached_st *ptrmemcached_result_st *resultmemcached_return_t *error)

以上两个函数同时配合使用,一次调用可以通过多个键获取多个值。先通过memcached_mget调用获取多个键的值,这些值通过循环调用memcached_fetch_result来获得每一个键所对应的值,直到该函数返回0。

5.       Store, Add and Replace的操作。

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, uint32_t flags);

memcached中如果存在该键,则利用新值去替换,否则将该记录写入memcached中。

 

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, uint32_t flags);

如果memcached中存在该键,发生错误;否则将该记录添加进memcached中。

 

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, uint32_t flags);

如果memcached中没有该键,发生错误;否则替换value。

以上三个函数中,key的长度不能超过250个字符,value是一个16个字节的值。Expiration是该记录在memcached的有效时间,即是超时时间。

6.       删除操作。

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

该函数将与key对应的记录放入删除队列中,并且通过expiration指定该记录从服务器删除的时间。

7.       断开客户端与服务器的连接。

void memcached_quit (memcached_st *ptr);

 

 

 

 

使用遇到的:

memcached_server_list_st memcached_server_list_append(memcached_server_list_st list, const char *hostname, unsigned int port, memcached_return_t *error)

该函数是将要连接的服务器添加到memcached_server_st数组中,返回值为NULL时表示出现错误,如果未指定port端口则使用默认的端口。

 

memcached_return_t memcached_server_push(memcached_st *ptr, const memcached_server_st *list)

该函数将 memcached_server_st数组添加到memcached_st结构中。

 

void memcached_server_list_free(memcached_server_list_st list)

释放memcached_server_list_st所占据的内存。

标签:const,介绍,st,API,key,memcached,ptr,libmemcached,size
From: https://blog.51cto.com/u_16131207/6443264

相关文章

  • Database System Concepts——读书笔记 第一章 介绍
    数据库系统概念——第一章数据库管理系统(DBMS)由相互关联的数据集合和访问这些数据的程序集合组成。数据库相对于文件系统,更规范化,提供条件查询能力,避免冗余数据。类似操作系统于底层硬件,提供抽象能力,易用性。physicallevel->logicallevel->viewlevelinstance和schem......
  • ALSA(Advanced Linux Sound Architecture)声卡编程介绍
    英文原文:http://www.linuxjournal.com/article/6735period(周期):硬件中中断间的间隔时间。它表示输入延时。声卡接口中有一个指针来指示声卡硬件缓存区中当前的读写位置。只要接口在运行,这个指针将循环地指向缓存区中的某个位置。framesize=sizeof(onesample)*nChannel......
  • 新的权限模型Matrix data access structure介绍
    这是我的第494篇原创文章,写于2023年6月8日。2021年11月2日,PowerApps博客的博文 AnnouncingPublicPreviewformodernizebusinessunits 宣布了ModernizedBusinessUnits开启Publicpreview阶段,到本文写作时,这个Feature已经GeneralAvailable了。相关功能介绍请参考官方文档......
  • 如何在.net6webapi中实现自动依赖注入
    IOC/DIIOC(InversionofControl)控制反转:控制反正是一种设计思想,旨在将程序中的控制权从程序员转移到了容器中。容器负责管理对象之间的依赖关系,使得对象不再直接依赖于其他对象,而是通过依赖注入的方式来获取所需的资源。ID(DependencyInjection)依赖注入:他是IOC的具体实现方式之......
  • 【京东JD电商平台api接口】获得JD商品详情接口PHP调用演示示例
    京东提供了商品详情API接口,可以帮助开发者获取到指定商品的详细信息,例如价格、库存、销售量、详情描述、图片等。具体获取方式如下:1. 首先需要在开放平台上申请API接口密钥。2.登录API接口调用地址。3. 根据API接口文档中的参数要求,构造API接口请求的参数。4. 将参数进行签......
  • el-api包冲突,java.lang.LinkageError: loader constraints violated when linking ja
    java.lang.LinkageError:loaderconstraintsviolatedwhenlinkingjavax/el/ExpressionFactoryclass严重:Servlet.service()forservletjspthrewexceptionjava.lang.LinkageError:loaderconstraintsviolatedwhenlinkingjavax/el/ExpressionFactoryclassat......
  • CANoe_ Trace 和 Graphics 窗口的介绍和使用
    Canoe是一款用于汽车网络分析和仿真的工具,其中包括Trace和Graphics两个窗口,用于显示和分析CAN网络数据。以下是对Canoe的Trace和Graphics窗口的简要介绍和使用说明:1.Trace窗口Trace窗口用于显示CAN网络中的消息和信号数据。可以在Trace窗口中实时查看CAN消息的发送和接收情......
  • Target DVS EDI项目开源介绍
    近期为了帮助广大用户更好地使用EDI系统,我们根据以往的项目实施经验,将成熟的EDI项目进行开源。用户安装好知行之桥EDI系统之后,只需要下载我们整理好的示例代码,并放置在知行之桥指定的工作区中,即可开始使用。今天的文章主要为大家介绍TargetDVSEDI项目,了解如何获取开源的......
  • Nginx conf for fastapi backend project with variables
    带变量的nginx后端项目配置不同的api项目,挂载不同的域名,只需在配置夹里,修改文件名(建议文件名和域名保持一致)、修改端口号、修改第5行第22行backend_api后面的编号、修改第11行的项目名、可能还需要修改第12行的文件夹名、修改第14行的域名$cat/etc/nginx/sites-avaliable/myap......
  • EndNote参考文献格式Output Styles界面介绍
      本文对EndNote软件修改论文参考文献引用格式的界面与各选项参数加以详细介绍。  利用EndNote软件进行论文参考文献的插入可以说是非常方便;但其亦具有一个问题,就是对中文文献的支持不太友好;之前也用过NoteExpress,这一国产软件对于中文参考文献的支持性很好,但是由于论文较多,......