有关memcached的C语言接口——libmemcached的介绍:
详情参见:
http://docs.libmemcached.org/index.html
1.
创建和删除memcached_st结构。
#include
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
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
char * memcached_get(memcached_st *ptr, const char *key, size_t key_length, size_t *value_length, uint32_t *flags, memcached_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 *ptr, memcached_result_st *result, memcached_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所占据的内存。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
相关推荐: 一次网络请求中的流量分发过程 | 京东云技术团队
1. 摘要 现代的企业级或互联网系统往往需要进行流量规划,达成透明多级分流。流量从客户端发出到服务端处理这个过程里,流经的与功能无关的技术部件有(达成“透明分流”这个目标所采用的工具与手段):客户端缓存、域名服务器、传输链路、内容分发网络、负载均衡器、服务端缓…