未验证 提交 a83c9ce3 编写于 作者: A Axlgrep 提交者: GitHub

bugfix srandmember acts differently with redis (#275)

* v2.3.4

* bugfix srandmember acts differently with redis
上级 9340d43d
...@@ -156,9 +156,11 @@ public: ...@@ -156,9 +156,11 @@ public:
private: private:
std::string key_; std::string key_;
int64_t count_; int64_t count_;
bool reply_arr;
virtual void DoInitial(PikaCmdArgsType &argvs, const CmdInfo* const ptr_info); virtual void DoInitial(PikaCmdArgsType &argvs, const CmdInfo* const ptr_info);
virtual void Clear() { virtual void Clear() {
count_ = 1; count_ = 1;
reply_arr = false;
} }
}; };
......
...@@ -408,10 +408,12 @@ void SRandmemberCmd::DoInitial(PikaCmdArgsType &argv, const CmdInfo* const ptr_i ...@@ -408,10 +408,12 @@ void SRandmemberCmd::DoInitial(PikaCmdArgsType &argv, const CmdInfo* const ptr_i
if (argv.size() > 3) { if (argv.size() > 3) {
res_.SetRes(CmdRes::kWrongNum, kCmdNameSRandmember); res_.SetRes(CmdRes::kWrongNum, kCmdNameSRandmember);
return; return;
} else if (argv.size() < 3) { } else if (argv.size() == 3) {
return; if (!slash::string2l(argv[2].data(), argv[2].size(), &count_)) {
} else if (!slash::string2l(argv[2].data(), argv[2].size(), &count_)) { res_.SetRes(CmdRes::kInvalidInt);
res_.SetRes(CmdRes::kInvalidInt); } else {
reply_arr = true;;
}
} }
return; return;
} }
...@@ -420,7 +422,7 @@ void SRandmemberCmd::Do() { ...@@ -420,7 +422,7 @@ void SRandmemberCmd::Do() {
std::vector<std::string> members; std::vector<std::string> members;
nemo::Status s = g_pika_server->db()->SRandMember(key_, members, count_); nemo::Status s = g_pika_server->db()->SRandMember(key_, members, count_);
if (s.ok() || s.IsNotFound()) { if (s.ok() || s.IsNotFound()) {
if (members.size() == 1) { if (!reply_arr) {
res_.AppendStringLen(members[0].size()); res_.AppendStringLen(members[0].size());
res_.AppendContent(members[0]); res_.AppendContent(members[0]);
} else { } else {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册