acl
3.5.3.0
|
#include <redis_client.hpp>
Public 成员函数 | |
redis_client (const char *addr, int conn_timeout=60, int rw_timeout=30, bool retry=true) | |
virtual | ~redis_client (void) |
void | set_ssl_conf (sslbase_conf *ssl_conf) |
void | set_password (const char *pass) |
void | set_db (int dbnum) |
int | get_db (void) const |
const char * | get_addr (void) const |
void | set_check_addr (bool on) |
bool | eof (void) const |
void | close (void) |
socket_stream * | get_stream (bool auto_connect=true) |
void | set_slice_request (bool on) |
void | set_slice_respond (bool on) |
const redis_result * | run (dbuf_pool *pool, const string &req, size_t nchildren, int *rw_timeout=NULL) |
const redis_result * | run (dbuf_pool *pool, const redis_request &req, size_t nchildren, int *rw_timeout=NULL) |
const redis_result * | run (redis_command *cmd, size_t nchildren, int *rw_timeout=NULL) |
redis_result * | get_objects (socket_stream &conn, dbuf_pool *pool, size_t nobjs) |
redis_result * | get_object (socket_stream &conn, dbuf_pool *pool) |
redis_result * | get_error (socket_stream &conn, dbuf_pool *pool) |
redis_result * | get_status (socket_stream &conn, dbuf_pool *pool) |
redis_result * | get_integer (socket_stream &conn, dbuf_pool *pool) |
redis_result * | get_string (socket_stream &conn, dbuf_pool *pool) |
redis_result * | get_array (socket_stream &conn, dbuf_pool *pool) |
Public 成员函数 继承自 acl::connect_client | |
connect_client (void) | |
virtual | ~connect_client () |
time_t | get_when () |
void | set_when (time_t when) |
connect_pool * | get_pool () const |
virtual void | set_timeout (int conn_timeout, int rw_timeout) |
Protected 成员函数 | |
bool | open (void) |
Protected 成员函数 继承自 acl::connect_client | |
void | set_pool (connect_pool *pool) |
Protected 成员函数 继承自 acl::acl::noncopyable | |
noncopyable () | |
~noncopyable () | |
Protected 属性 | |
socket_stream | conn_ |
bool | check_addr_ |
char * | addr_ |
char * | pass_ |
bool | retry_ |
bool | authing_ |
bool | slice_req_ |
bool | slice_res_ |
int | dbnum_ |
sslbase_conf * | ssl_conf_ |
Protected 属性 继承自 acl::connect_client | |
int | conn_timeout_ |
int | rw_timeout_ |
time_t | when_ |
connect_pool * | pool_ |
redis 客户端对象网络通信类,通过此类将组织好的 redis 请求命令发给 redis 服务端,同时接收 redis 服务端响应结果;该类继承于 connect_client 类,主要 为了使用连接池功能。 redis client network IO class. The redis request is sent to server and the server's respond is handled in this class. The class inherits connect_client, which can use the connection pool function.
在文件 redis_client.hpp 第 27 行定义.
acl::redis_client::redis_client | ( | const char * | addr, |
int | conn_timeout = 60 , |
||
int | rw_timeout = 30 , |
||
bool | retry = true |
||
) |
构造函数 constructor
addr | {const char*} redis-server 监听地址 the redis-server listening addr |
conn_timeout | {int} 连接 redis-server 的超时时间(秒) the timeout in seconds to connect the redis-server |
rw_timeout | {int} 与 redis-server 进行通信的 IO 超时时间(秒) the network IO timeout in seconds with the redis-server |
|
virtual |
void acl::redis_client::close | ( | void | ) |
关闭网络连接 close the connection to the redis-server
bool acl::redis_client::eof | ( | void | ) | const |
判断该网络连接对象是否已经关闭 check if the connection has been finish
|
inline |
redis_result* acl::redis_client::get_array | ( | socket_stream & | conn, |
dbuf_pool * | pool | ||
) |
|
inline |
redis_result* acl::redis_client::get_error | ( | socket_stream & | conn, |
dbuf_pool * | pool | ||
) |
redis_result* acl::redis_client::get_integer | ( | socket_stream & | conn, |
dbuf_pool * | pool | ||
) |
redis_result* acl::redis_client::get_object | ( | socket_stream & | conn, |
dbuf_pool * | pool | ||
) |
redis_result* acl::redis_client::get_objects | ( | socket_stream & | conn, |
dbuf_pool * | pool, | ||
size_t | nobjs | ||
) |
redis_result* acl::redis_client::get_status | ( | socket_stream & | conn, |
dbuf_pool * | pool | ||
) |
socket_stream* acl::redis_client::get_stream | ( | bool | auto_connect = true | ) |
获得网络连接流,当连接关闭时内部会自动重连一次 get acl::socket_stream from the connection
auto_connect | {bool} 内部是否需要自动连接服务端 if we should connect the redis server automaticlly |
redis_result* acl::redis_client::get_string | ( | socket_stream & | conn, |
dbuf_pool * | pool | ||
) |
|
protectedvirtual |
实现了 acl::connect_client.
const redis_result* acl::redis_client::run | ( | dbuf_pool * | pool, |
const string & | req, | ||
size_t | nchildren, | ||
int * | rw_timeout = NULL |
||
) |
用于非分片发送方式,向 redis-server 发送请求数据,同时读取并分析 服务端返回的响应数据 send request to redis-server, and read/anlyse response from server, this function will be used for no-slice request mode.
pool | {dbuf_pool*} 内存池管理器对象 memory pool manager |
req | {const string&} 请求数据包 the request package |
nchildren | {size_t} 响应数据有几个数据对象 the data object number in the server's response data |
const redis_result* acl::redis_client::run | ( | dbuf_pool * | pool, |
const redis_request & | req, | ||
size_t | nchildren, | ||
int * | rw_timeout = NULL |
||
) |
用于分片发送请求方式 just for sending proccess in slice request mode
req | {const redis_request&} 请求数据对象 request object |
const redis_result* acl::redis_client::run | ( | redis_command * | cmd, |
size_t | nchildren, | ||
int * | rw_timeout = NULL |
||
) |
void acl::redis_client::set_check_addr | ( | bool | on | ) |
在进行每个命令处理前,是否要求检查 socket 句柄与地址的匹配情况,当 打开该选项时,将会严格检查匹配情况,但会影响一定性能,因此该设置仅 用在 DEBUG 时的运行场景
on | {bool} |
void acl::redis_client::set_db | ( | int | dbnum | ) |
设置本连接所对应的 db,当连接建立后如果指定的 db 值大于 0,则内部自动 选择对应的 db,注意:该功能仅针对非集群模式 if db > 0 in no cluster mode, select the db when the connection is created.
dbnum | {int} |
void acl::redis_client::set_password | ( | const char * | pass | ) |
调用本函数设置连接 redis 服务的连接密码
pass | {const char*} |
void acl::redis_client::set_slice_request | ( | bool | on | ) |
对于请求数据包,此函数设置在组装请求数据包的时候合成一个数据包发送 just for request package, setting flag for sending data with multi data chunks; this is useful when the request data is large
on | {bool} 当为 true 时则不会将请求数据合成一个数据包发送 if true the request data will not be combined one package |
void acl::redis_client::set_slice_respond | ( | bool | on | ) |
对于响应数据包,此函数设置是否将 redis-server 响应的数据分拆成多个数据块, 这对于大的数据包有用处,可以不必一次性分配一个连续性的大内存 just for response package, settint flag for receiving data if split the large response data into multi little chunks
on | {bool} 当为 true 时则对响应数据包进行拆分 if true the response data will be splitted into multi little data, which is useful for large reponse data for avoiding malloc large continuously memory from system. |
void acl::redis_client::set_ssl_conf | ( | sslbase_conf * | ssl_conf | ) |
设置 SSL 通信方式下的配置句柄,内部缺省值为 NULL,如果设置了 SSL 连 接配置对象,则内部切换成 SSL 通信方式 set SSL communication with Redis-server if ssl_conf not NULL
ssl_conf | {sslbase_conf*} |
|
protected |
在文件 redis_client.hpp 第 181 行定义.
|
protected |
在文件 redis_client.hpp 第 184 行定义.
|
protected |
在文件 redis_client.hpp 第 180 行定义.
|
protected |
在文件 redis_client.hpp 第 179 行定义.
|
protected |
在文件 redis_client.hpp 第 187 行定义.
|
protected |
在文件 redis_client.hpp 第 182 行定义.
|
protected |
在文件 redis_client.hpp 第 183 行定义.
|
protected |
在文件 redis_client.hpp 第 185 行定义.
|
protected |
在文件 redis_client.hpp 第 186 行定义.
|
protected |
在文件 redis_client.hpp 第 188 行定义.