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 相关命令相同。

 

posted @ 2019-10-06 16:45  清平乐2019  Views(6525)  Comments(0Edit  收藏  举报