redis实践 —— redisReply简析
redisReply 定义如下:
/* This is the reply object returned by redisCommand() */ typedef struct redisReply { int type; /* 返回值类型 */ long long integer; /* 当返回类型为 REDIS_REPLY_INTEGER 时 */ size_t len; /* 返回的字符串长度 */ char *str; /* 当返回值类型为 REDIS_REPLY_ERROR 和 REDIS_REPLY_STRING */ size_t elements; /* 返回的数组长度 */ struct redisReply **element; /* 当返回值类型为 REDIS_REPLY_ARRAY */ } redisReply;
type 有以下几种类型:
REDIS_REPLY_STRING : 1
REDIS_REPLY_ARRAY : 2
REDIS_REPLY_INTEGER :3
REDIS_REPLY_NIL : 4
REDIS_REPLY_STATUS : 5
REDIS_REPLY_ERROR : 6
如:
_reply = static_cast<redisReply *>(redisCommand(_context, "SETNX test 1");
此时 _reply->type 为 REDIS_REPLY_INTEGER ,且值存放在 _reply->integer 中。
_reply = static_cast<redisReply *>(redisCommand(_context, "GET test");
此时 _reply->type 为 REDIS_REPLY_STATUS,且值存放在 _reply->str 中。("OK")
具体的返回值和返回类型与 redis 相关命令相同。