9 #ifndef _XREDIS_POOL_H_
10 #define _XREDIS_POOL_H_
14 #include "xRedisClient.h"
21 #define MAX_REDIS_CONN_POOLSIZE 128 // 每个DB最大连接数
22 #define MAX_REDIS_CACHE_TYPE 128 // 最大支持的CACHE种类数
23 #define MAX_REDIS_DB_HASHBASE 128 // 最大HASH分库基数
25 #define GET_CONNECT_ERROR "get connection error"
26 #define CONNECT_CLOSED_ERROR "redis connection be closed"
29 #define strcasecmp stricmp
30 #define strncasecmp strnicmp
31 #define usleep(us) Sleep((us)/1000)
32 #define pthread_self() GetCurrentThreadId()
35 enum { REDISDB_UNCONN,
44 void Init(uint32_t cahcetype, uint32_t sliceindex,
const std::string& host,
45 uint32_t port,
const std::string& pass, uint32_t poolsize,
46 uint32_t timeout, uint32_t role, uint32_t slaveidx);
49 bool RedisReConnect();
52 redisContext* GetCtx()
const {
return mCtx; }
53 uint32_t GetdbIndex()
const {
return mSliceIndex; }
54 uint32_t GetType()
const {
return mType; }
55 uint32_t GetRole()
const {
return mRole; }
56 uint32_t GetSlaveIdx()
const {
return mSlaveIdx; }
57 bool GetConnstatus()
const {
return mConnStatus; }
61 redisContext* ConnectWithTimeout();
78 typedef std::list<RedisConnection*> RedisConnectionPool;
79 typedef std::list<RedisConnection*>::iterator RedisConnectionIter;
81 typedef std::vector<RedisConnectionPool*> RedisSlaveGroup;
82 typedef std::vector<RedisConnectionPool*>::iterator RedisSlaveGroupIter;
85 RedisConnectionPool RedisMasterConnection;
86 RedisSlaveGroup RedisSlaveConnection;
96 void Init(uint32_t cahcetype, uint32_t dbindex);
98 bool ConnectRedisSlice(uint32_t cahcetype, uint32_t dbindex,
99 const std::string& host, uint32_t port,
100 const std::string& passwd, uint32_t poolsize,
101 uint32_t timeout, int32_t role);
107 void CloseConnPool();
109 uint32_t GetStatus()
const;
115 uint32_t mSliceindex;
124 bool InitDB(uint32_t cachetype, uint32_t hashbase);
125 bool ConnectRedisGroup(uint32_t cahcetype, uint32_t dbindex,
126 const std::string& host, uint32_t port,
127 const std::string& passwd, uint32_t poolsize,
128 uint32_t timeout, uint32_t role);
134 uint32_t GetDBStatus(uint32_t dbindex);
135 uint32_t GetHashBase()
const;
148 bool Init(uint32_t typesize);
149 bool SetHashBase(uint32_t cachetype, uint32_t hashbase);
150 uint32_t GetHashBase(uint32_t cachetype);
151 bool ConnectRedisGroup(uint32_t cachetype, uint32_t sliceindex,
152 const std::string& host, uint32_t port,
153 const std::string& passwd, uint32_t poolsize,
154 uint32_t timeout, uint32_t role);
155 static bool CheckReply(
const redisReply* reply);
156 static void FreeReply(
const redisReply* reply);
159 uint32_t ioType = MASTER);
Definition: xRedisPool.h:39
Definition: xRedisPool.h:84
Definition: xRedisPool.h:143
Definition: xRedisPool.h:119
Definition: xRedisPool.h:91