redis 实战记录

redis  sadd  spop      数据集

redis  可以实现队列  栈

redis   可以实现 发布 订阅

介绍返回状态

https://www.jianshu.com/p/466c76a60324

 

错误

如果一个函数调用不成功,不同函数会返回 NULLREDIS_ERRredisContext 中的 err 字段会被设置为以下的非零值:

  • REDIS_ERR_IO:
    创建连接、通过socket读写数据时产生了错误。如果包括了 errno.h 头文件,可以使用 errno 检查出了什么错。

  • REDIS_ERR_EOF:
    服务器关闭了连接导致的空读。

  • REDIS_ERR_PROTOCOL:
    解析协议出错。

  • REDIS_ERR_OTHER:
    任意其他错误。目前仅用于要连接的指定主机无法被解析的情况下。

每一种情况下, errstr 字段都会被设置为相应的文字说明。

redisReply

redisReplyredisCommand 返回值的实际类型。
redisCommand 发生错误时返回 NULL,并设置 redisContext 错误。

一旦发生错误,这个 redisContext 就不能继续使用,必须建立新的连接。

可以通过 redisReplytype 字段来判断返回类型:

  • REDIS_REPLY_STATUS:

    • 命令返回的是状态。可以用 reply->strreply->len 获得描述字符串及其长度。
  • REDIS_REPLY_ERROR:

    • 命令执行错误,错误字符串获取方法与 REDIS_REPLY_STATUS 一样。
  • REDIS_REPLY_INTEGER:

    • 命令返回的是整数, 返回值是 long long 类型,通过 reply->integer 获取。
  • REDIS_REPLY_NIL:

    • 命令返回的是 nil 对象,没有数据可取。
  • REDIS_REPLY_STRING:

    • 命令返回字符串,可以通过 reply->strreply->len 获得字符串及其长度。
  • REDIS_REPLY_ARRAY:

    • 命令返回数组,元素个数存储在 reply->elements 中。 每个元素都是一个 redisReply , 并可以通过 reply->element[..index..] 的方法获取。

reply应该用 freeReplyObject 释放,数组和内嵌数组不需要被单独释放。

 

redis使用c++ API 的hiredis连接详解

http://www.360doc.com/content/19/0401/09/33093582_825645368.shtml

 

https://redislabs.com/lp/hiredis/

 

Hiredis 实现 Redis 流水线

https://www.codercto.com/a/4503.html

 

xRedis 是一个C++开发的redis客户端,是对hiredis的C++封装,提供易用的redis命令操作接口.

https://gitee.com/0xsky/xredis

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值