Skip to content

Commit b343888

Browse files
committed
add Business api
1 parent 437b42c commit b343888

File tree

9 files changed

+336
-162
lines changed

9 files changed

+336
-162
lines changed

include/cppredis/client.hpp

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,15 @@ namespace cpp_redis {
6565
return client_->get_current_error();
6666
}
6767

68+
std::string get_current_status()
69+
{
70+
if (client_ == nullptr){
71+
return "";
72+
}
73+
74+
return client_->get_current_status();
75+
}
76+
6877
bool set_db_num(int&& num)
6978
{
7079
if (client_ == nullptr) {
@@ -263,6 +272,36 @@ namespace cpp_redis {
263272
return client_->renamenx_key(std::move(keys_[0]), std::move(keys_[1]));
264273
}
265274

275+
//开启一个事务
276+
bool start_multi()
277+
{
278+
if (client_ == nullptr){
279+
return false;
280+
}
281+
282+
return client_->start_multi();
283+
}
284+
285+
//提交事务(所有命令)
286+
bool exec()
287+
{
288+
if (client_ == nullptr) {
289+
return false;
290+
}
291+
292+
return client_->exec();
293+
}
294+
295+
//取消所有事务
296+
bool discard()
297+
{
298+
if (client_ == nullptr){
299+
return false;
300+
}
301+
302+
return client_->discard();
303+
}
304+
266305
template<typename T1,typename T2>
267306
bool setex(T1&& key,T2 &&value, size_t seconds)
268307
{

include/cppredis/client_interface.hpp

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,14 @@ namespace cpp_redis {
3131
{
3232
check_args();
3333
const auto res = socket_->get_responese();
34-
std::string error = res->get_error();
35-
return std::move(error);
34+
return res->get_error();
35+
}
36+
37+
std::string get_current_status()
38+
{
39+
check_args();
40+
const auto res = socket_->get_responese();
41+
return res->get_status();
3642
}
3743
/********ip,port,password,db_num********************/
3844
template<typename...Args>
@@ -242,6 +248,53 @@ namespace cpp_redis {
242248

243249
return true;
244250
}
251+
252+
bool start_multi()
253+
{
254+
check_args();
255+
256+
std::string msg = request_->req_n_key(request_->get_cmd(redis_cmd::multi));
257+
258+
socket_->send_msg(std::move(msg));
259+
260+
const auto res = socket_->get_responese();
261+
262+
if (res->get_result_code() != status::status_) {
263+
return false;
264+
}
265+
266+
return true;
267+
}
268+
269+
bool exec()
270+
{
271+
check_args();
272+
273+
std::string msg = request_->req_n_key(request_->get_cmd(redis_cmd::exec));
274+
275+
socket_->send_msg(std::move(msg));
276+
277+
const auto res = socket_->get_responese();
278+
279+
if (res->get_result_code() == status::errors_) {
280+
return false;
281+
}
282+
283+
return true;
284+
}
285+
286+
bool discard()
287+
{
288+
check_args();
289+
290+
std::string msg = request_->req_n_key(request_->get_cmd(redis_cmd::discard));
291+
292+
socket_->send_msg(std::move(msg));
293+
294+
const auto res = socket_->get_responese();
295+
296+
return true;
297+
}
245298

246299
bool remove_expire(std::string&& key)
247300
{

include/cppredis/cpp_define.h

Lines changed: 78 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ namespace cpp_redis {
2121
const std::string g_ttl_cmd = "TTL";
2222
const std::string g_rename_cmd = "RENAME";
2323
const std::string g_renamenx_cmd = "RENAMENX";
24+
const std::string g_multi_cmd = "MULTI";//¿ªÆôÊÂÎñ
25+
const std::string g_exec_cmd = "EXEC";//Ìá½»ÊÂÎñ
26+
const std::string g_discard_cmd = "DISCARD";
2427
/****************×Ö·û´®²Ù×÷***********************************/
2528
const std::string g_setx_cmd = "SETEX";
2629
const std::string g_psetx_cmd = "PSETEX";
@@ -110,7 +113,6 @@ namespace cpp_redis {
110113
const std::string g_hash_get_all_cmd = "HGETALL";
111114
const std::string g_hash_incrby_float_cmd = "HINCRBYFLOAT";
112115
/*******************************************************************/
113-
114116
enum status
115117
{
116118
unconnected_ = -1,
@@ -142,78 +144,81 @@ namespace cpp_redis {
142144
pexpire_at = 17,
143145
remove_expire = 18,
144146
ttl = 19,
145-
rename = 20,
146-
renamenx = 21,
147-
get_set = 22,
148-
substr = 23,
149-
mget = 24,
150-
mset = 25,
151-
msetnx = 26,
152-
append = 27,
153-
rpush = 28,
154-
lpush = 29,
155-
llen = 30,
156-
lrange = 31,
157-
rpop = 32,
158-
lpop = 33,
159-
brpop = 34,
160-
blpop = 35,
161-
ltrim = 36,
162-
lindex = 37,
163-
lset = 38,
164-
lrem = 39,
165-
rpoplpush = 40,
166-
lpushx = 41,
167-
rpushx = 42,
168-
list_insert = 43,
169-
brpoplpush = 44,
170-
sadd = 45,
171-
srem = 46,
172-
sismember = 47,
173-
spop_elem = 48,
174-
srandmember = 49,
175-
smove = 50,
176-
ssize = 51,
177-
smembers = 52,
178-
sinter = 53,
179-
ssinter_store = 54,
180-
sunion = 55,
181-
ssunion_store = 56,
182-
sdiff = 57,
183-
sdiff_store = 58,
184-
zset_add = 59,
185-
zset_score = 60,
186-
zset_incrby = 61,
187-
zset_card = 62,
188-
zset_count = 63,
189-
zset_range = 64,
190-
zset_rank = 65,
191-
zset_rem = 66,
192-
zset_revrank = 67,
193-
zset_revrange = 68,
194-
zset_lexcount = 69,
195-
zset_rangebylex = 70,
196-
zset_union_store = 71,
197-
zset_inter_store = 72,
198-
zset_range_score = 73,
199-
zset_remrangebylex = 74,
200-
zset_rerange_score = 75,
201-
zset_remrangebyscore = 76,
202-
zset_remrangeby_rank = 77,
203-
hash_set = 78,
204-
hash_setx = 79,
205-
hash_exists = 80,
206-
hash_get = 81,
207-
hash_del = 82,
208-
hash_len = 83,
209-
hash_mset = 84,
210-
hash_mget = 85,
211-
hash_vals = 86,
212-
hash_keys = 87,
213-
hash_strlen = 88,
214-
hash_incrby = 89,
215-
hash_get_all = 90,
216-
hash_incrby_float = 91,
147+
multi = 20,
148+
exec = 21,
149+
discard = 22,
150+
rename = 23,
151+
renamenx = 24,
152+
get_set = 25,
153+
substr = 26,
154+
mget = 27,
155+
mset = 28,
156+
msetnx = 29,
157+
append = 30,
158+
rpush = 31,
159+
lpush = 32,
160+
llen = 33,
161+
lrange = 34,
162+
rpop = 35,
163+
lpop = 36,
164+
brpop = 37,
165+
blpop = 38,
166+
ltrim = 39,
167+
lindex = 40,
168+
lset = 41,
169+
lrem = 42,
170+
rpoplpush = 43,
171+
lpushx = 44,
172+
rpushx = 45,
173+
list_insert = 46,
174+
brpoplpush = 47,
175+
sadd = 48,
176+
srem = 49,
177+
sismember = 50,
178+
spop_elem = 51,
179+
srandmember = 52,
180+
smove = 53,
181+
ssize = 54,
182+
smembers = 55,
183+
sinter = 56,
184+
ssinter_store = 57,
185+
sunion = 58,
186+
ssunion_store = 59,
187+
sdiff = 60,
188+
sdiff_store = 61,
189+
zset_add = 62,
190+
zset_score = 63,
191+
zset_incrby = 64,
192+
zset_card = 65,
193+
zset_count = 66,
194+
zset_range = 67,
195+
zset_rank = 68,
196+
zset_rem = 69,
197+
zset_revrank = 70,
198+
zset_revrange = 71,
199+
zset_lexcount = 72,
200+
zset_rangebylex = 73,
201+
zset_union_store = 74,
202+
zset_inter_store = 75,
203+
zset_range_score = 76,
204+
zset_remrangebylex = 77,
205+
zset_rerange_score = 78,
206+
zset_remrangebyscore = 79,
207+
zset_remrangeby_rank = 80,
208+
hash_set = 81,
209+
hash_setx = 82,
210+
hash_exists = 83,
211+
hash_get = 84,
212+
hash_del = 85,
213+
hash_len = 86,
214+
hash_mset = 87,
215+
hash_mget = 88,
216+
hash_vals = 89,
217+
hash_keys = 90,
218+
hash_strlen = 91,
219+
hash_incrby = 92,
220+
hash_get_all = 93,
221+
hash_incrby_float = 94,
217222
};
218223

219224
enum request_type

0 commit comments

Comments
 (0)