acl/lib_acl_cpp/include/acl_cpp/redis/redis_connection.hpp

88 lines
2.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#include "../acl_cpp_define.hpp"
#include "redis_command.hpp"
#if !defined(ACL_CLIENT_ONLY) && !defined(ACL_REDIS_DISABLE)
namespace acl
{
class redis_client;
/**
* redis Connection 类,包含命令如下:
* AUTH、ECHO、PING、QUIT、SELECT
* redis connection command clss, including as below:
* AUTH, ECHO, PING, QUIT, SELECT
*/
class ACL_CPP_API redis_connection : virtual public redis_command
{
public:
/**
* see redis_command::redis_command()
*/
redis_connection(void);
/**
* see redis_command::redis_command(redis_client*)
*/
redis_connection(redis_client* conn);
/**
* see redis_command::redis_command(redis_client_cluster* size_t)
*/
redis_connection(redis_client_cluster* cluster, size_t max_conns = 0);
virtual ~redis_connection(void);
/////////////////////////////////////////////////////////////////////
/**
* 连接至 redis-server 时进行身份验证
* AUTH command to login the redis server.
* @param passwd {const char*} 在 redis 配置文件中指定的认证密码
* the password in redis-server configure
* @return {bool} 身份认证是否成功,返回 false 表示认证失败或操作失败
* return true if success, or false because auth failed or error.
*/
bool auth(const char* passwd);
/**
* 选择 redis-server 中的数据库 ID
* SELECT command to select the DB id in redis-server
* @param dbnum {int} redis 数据库 ID
* the DB id
* @return {bool} 操作是否成功
* return true if success, or false for failed.
*/
bool select(int dbnum);
/**
* 探测 redis 连接是否正常
* PING command for testing if the connection is OK
* @return {bool} 连接是否正常
* return true if success
*/
bool ping();
/**
* 测试用命令,让 redis-server 回显给定字符串
* ECHO command, request redis-server to echo something.
* @return {bool} 操作是否成功
* return true if success
*/
bool echo(const char* s);
/**
* 关闭 redis 连接
* QUIT command to close the redis connection
* @return {bool}
* return true if success
*/
bool quit();
};
} // namespace acl
#endif // !defined(ACL_CLIENT_ONLY) && !defined(ACL_REDIS_DISABLE)