redis_handler.h 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. /*
  2. * @Description:
  3. * @Version: 1.0
  4. * @Autor: zhuyijun
  5. * @Date: 2021-11-17 09:35:52
  6. * @LastEditTime: 2021-11-17 09:35:53
  7. */
  8. #ifndef __REDIS_HANDLER_H__
  9. #define __REDIS_HANDLER_H__
  10. #include <hiredis/hiredis.h>
  11. #include <string>
  12. using namespace std;
  13. enum {
  14. M_REDIS_OK = 0, //执行成功
  15. M_CONNECT_FAIL = -1, //连接redis失败
  16. M_CONTEXT_ERROR = -2, // RedisContext返回错误
  17. M_REPLY_ERROR = -3, // redisReply错误
  18. M_EXE_COMMAND_ERROR = -4 // redis命令执行错误
  19. };
  20. class RedisHandler {
  21. public:
  22. RedisHandler();
  23. ~RedisHandler();
  24. int connect(
  25. const string &addr, int port,
  26. const string &pwd =
  27. ""); //连接redis数据库:addr:IP地址,port:端口号,pwd:密码(默认为空)
  28. int disConnect(); //断开连接
  29. int setValue(const string &key,
  30. const string &value); //添加或修改键值对,成功返回0,失败<0
  31. int getValue(const string &key,
  32. string &value); //获取键对应的值,成功返回0,失败<0
  33. int delKey(const string &key); //删除键,成功返回影响的行数,失败<0
  34. int printAll(); //打印所有的键值对
  35. string getErrorMsg(); //获取错误信息
  36. private:
  37. string m_addr; // IP地址
  38. int m_port; //端口号
  39. string m_pwd; //密码
  40. redisContext *pm_rct; // redis结构体
  41. redisReply *pm_rr; //返回结构体
  42. string error_msg; //错误信息
  43. int connectAuth(const string &pwd); //使用密码登录
  44. int handleReply(void *value = NULL,
  45. redisReply ***array = NULL); //处理返回的结果
  46. };
  47. #endif