当前位置: 首页 > news >正文

品牌网站建设设计公司贵溪网站建设

品牌网站建设设计公司,贵溪网站建设,外汇网站模版,燕郊医疗网站建设hiredis 什么是 Hiredis Hiredis 是一个用于与 Redis 服务器进行通信的 C 语言库。它提供了一组 API#xff0c;方便开发者在各种应用场景中实现与 Redis 服务器的数据交互操作。 在服务器端的应用中#xff0c;比如构建 Web 服务或者后端处理程序时#xff0c;如果需要频…hiredis 什么是 Hiredis Hiredis 是一个用于与 Redis 服务器进行通信的 C 语言库。它提供了一组 API方便开发者在各种应用场景中实现与 Redis 服务器的数据交互操作。 在服务器端的应用中比如构建 Web 服务或者后端处理程序时如果需要频繁地与 Redis 进行数据存储、读取、修改等操作使用 Hiredis 可以提高效率和性能。 使用 以下取自hiredis库官方README 开源链接 同步 API 要使用同步 API只需要引入几个函数调用 redisContext *redisConnect(const char *ip, int port); void *redisCommand(redisContext *c, const char *format, ...); void freeReplyObject(void *reply);连接 redisConnect 函数用于创建所谓的 redisContext。上下文是 Hiredis 用来存储连接状态的地方。redisContext 结构中的整型 err 字段在连接出现错误时非零。errstr 字段会包含一个错误描述字符串。更多关于错误的信息可以在“错误”部分找到。使用 redisConnect 尝试连接 Redis 后应检查 err 字段以确定建立连接是否成功 redisContext *c redisConnect(127.0.0.1, 6379); if (c NULL || c-err) {if (c) {printf(Error: %s\n, c-errstr);// 处理错误} else {printf(Cant allocate redis context\n);} }也可以使用 redisConnectWithOptions它接受一个 redisOptions 参数可以通过这个参数配置终结点信息和许多不同的标志来改变 redisContext 的配置。 redisOptions opt {0};/* 可以通过我们的帮助宏之一设置终结点 */ if (tcp) {REDIS_OPTIONS_SET_TCP(opt, localhost, 6379); } else {REDIS_OPTIONS_SET_UNIX(opt, /tmp/redis.sock); }/* 也可以通过另一个帮助宏指定 privdata */ REDIS_OPTIONS_SET_PRIVDATA(opt, myPrivData, myPrivDataDtor);/* 最后可以通过 options 成员设置各种选项如下所示 */ opt.options | REDIS_OPT_PREFER_IPV4;如果连接丢失可以使用 int redisReconnect(redisContext *c) 恢复连接使用与给定上下文相同的终结点和选项。 使用套接字选项的其他配置 以下套接字选项直接应用于底层套接字。 这些值不会存储在 redisContext 中因此在使用 redisReconnect() 重新连接时不会自动应用。 这些函数成功时返回 REDIS_OK失败时返回 REDIS_ERR 并关闭底层连接。 对于异步上下文参见下面的“异步 API”使用 ac-c 从 asyncRedisContext 中获取 redisContext。 int redisEnableKeepAlive(redisContext *c); int redisEnableKeepAliveWithInterval(redisContext *c, int interval);启用 TCP 保活通过设置以下套接字选项根据操作系统有所不同 SO_KEEPALIVE; TCP_KEEPALIVE 或 TCP_KEEPIDLE可使用 interval 参数配置默认为 15 秒 TCP_KEEPINTVL 设为 interval 的三分之一 TCP_KEEPCNT 设为 3。 int redisSetTcpUserTimeout(redisContext *c, unsigned int timeout);设置 Linux 特有的 TCP_USER_TIMEOUT 套接字选项如 tcp 手册页所述 当值大于 0 时表示传输的数据可以未确认的最大时间以毫秒为单位超时后 TCP 将强制关闭相应的连接并向应用程序返回 ETIMEDOUT。 如果选项值指定为 0则 TCP 将使用系统默认值。 发送命令 向 Redis 发送命令有多种方法。首先介绍的是 redisCommand 函数它采用类似于 printf 的格式。最简单形式如下 reply redisCommand(context, SET foo bar);%s 指定符会插入字符串并使用 strlen 确定字符串长度 reply redisCommand(context, SET foo %s, value);当需要在命令中传递二进制安全字符串时可以使用 %b 指定符。需要与字符串指针一起提供一个 size_t 类型的字符串长度参数 reply redisCommand(context, SET foo %b, value, (size_t) valuelen);Hiredis 会将命令拆分为不同的参数并将其转换为与 Redis 通信所使用的协议。 命令中的多个空格用于分隔参数所以可以在参数中的任何位置使用指定符 reply redisCommand(context, SET key:%s %s, myid, value);使用回复 如果命令执行成功redisCommand 的返回值会持有回复。发生错误时返回值为 NULL并将上下文的 err 字段设置参见“错误”部分。 一旦返回错误就无法再使用该上下文应建立新的连接。 redisCommand 返回的标准回复类型为 redisReply。使用 redisReply 的 type 字段来测试接收到了哪种类型的回复 清理 要断开连接并释放上下文可以使用以下函数 void redisFree(redisContext *c);例子 #include stdio.h #include stdlib.h #include hiredis/hiredis.hint main() {// 创建 Redis 上下文redisContext *context redisConnect(127.0.0.1, 6379);if (context NULL || context-err) {if (context) {printf(连接错误: %s\\n, context-errstr);redisFree(context);} else {printf(无法分配 Redis 上下文\\n);}return 1;}// 设置键值对/*这条命令在 Redis 中设置了一个键值对其中键key是 foo值value是 bar。因此通过上面的代码添加的数据是键值对 foo:bar。在 Redis 中每个键都可以关联一个 值用于存储和检索数据。在这个例子中我们只是简单地设置了一个键值对但在实际应用中你可以根据需要设置更复杂的键值对比如数组、哈希表、列表、集合等。*/redisReply *reply redisCommand(context, SET foo bar);if (reply NULL) {printf(Redis 命令执行失败\\n);redisFree(context);return 1;}// 检查命令执行结果if (reply-type REDIS_REPLY_STATUS strcmp(reply-str, OK) 0) {printf(键值对设置成功\\n);} else {printf(键值对设置失败\\n);}// 释放回复对象freeReplyObject(reply);// 关闭 Redis 连接redisFree(context);return 0; }
http://www.hkea.cn/news/14296525/

相关文章:

  • 怎么夸客户网站做的好江西汽车网站建设
  • 北京网站排名公司网站关闭公告代码
  • 做网站的去那里接单广告设计培训班有用吗
  • 二级网站建设方案 试行什么平台可以发广告引流
  • 做一个公司的网站应做哪些准备工作内容单位做好接种第三针疫苗通知
  • asp.net网站搬迁到移动终端网站建设的工作方法
  • 网站上推广游戏怎么做wordpress所有标签编辑目录
  • 韩国ps教程网站数商云公司
  • 网站界面怎么做有限公司名称大全
  • 淮南建设网站公益网站模板
  • 各大网站logo图标网络工程和软件工程哪个好
  • 企业网站建设合同抖音广告投放代理商
  • 网站禁止访问网站公司建设个服务号多少钱
  • 云南网站开发公司推荐杭州网站建设技术支持
  • 网站分页代码网站集约化建设困难
  • 做任务什么网站查域名备案信息
  • 微信网站模块免费拥有自己的网站
  • 成都网站维护公司山西省建设工程信息网
  • 人像摄影作品网站温州网论坛
  • 请为hs公司的钻石礼品网站做网络营销沟通策划_预算是20万.在线制作电子印章软件
  • 大型地方门户网站源码如何做网站服务
  • 建广告网站需要多少钱开源网站建设
  • 常德网站建设wynet123上海稼禾建设装饰集团网站
  • 金融服务网站建设wordpress主题文件
  • 通用网站后台管理系统(php版) 1.6怎么用网页编辑如何添加图片
  • 网站如何做301跳转物流网站建设与管理规划书
  • 自己做网站制作需要多少钱创建平台网站下载
  • 免费软件下载网站排行网站微信支付开发
  • 南通网站定制搭建泊头市做网站
  • 深圳做网站980做我女朋友的网站