redis sadd spop 数据集
redis 可以实现队列 栈
redis 可以实现 发布 订阅
介绍返回状态
https://www.jianshu.com/p/466c76a60324
错误
如果一个函数调用不成功,不同函数会返回 NULL
或 REDIS_ERR
。 redisContext
中的 err
字段会被设置为以下的非零值:
-
REDIS_ERR_IO
:
创建连接、通过socket读写数据时产生了错误。如果包括了errno.h
头文件,可以使用errno
检查出了什么错。 -
REDIS_ERR_EOF
:
服务器关闭了连接导致的空读。 -
REDIS_ERR_PROTOCOL
:
解析协议出错。 -
REDIS_ERR_OTHER
:
任意其他错误。目前仅用于要连接的指定主机无法被解析的情况下。
每一种情况下, errstr
字段都会被设置为相应的文字说明。
redisReply
redisReply
是 redisCommand
返回值的实际类型。redisCommand
发生错误时返回 NULL
,并设置 redisContext
错误。
一旦发生错误,这个 redisContext
就不能继续使用,必须建立新的连接。
可以通过 redisReply
的 type
字段来判断返回类型:
-
REDIS_REPLY_STATUS
:- 命令返回的是状态。可以用
reply->str
和reply->len
获得描述字符串及其长度。
- 命令返回的是状态。可以用
-
REDIS_REPLY_ERROR
:- 命令执行错误,错误字符串获取方法与
REDIS_REPLY_STATUS
一样。
- 命令执行错误,错误字符串获取方法与
-
REDIS_REPLY_INTEGER
:- 命令返回的是整数, 返回值是
long long
类型,通过reply->integer
获取。
- 命令返回的是整数, 返回值是
-
REDIS_REPLY_NIL
:- 命令返回的是 nil 对象,没有数据可取。
-
REDIS_REPLY_STRING
:- 命令返回字符串,可以通过
reply->str
和reply->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