You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kvrocks.apache.org by wa...@apache.org on 2022/11/02 06:08:50 UTC

[incubator-kvrocks] branch unstable updated: Remove duplicate ERR word in some error responses (#1063)

This is an automated email from the ASF dual-hosted git repository.

wangyuan pushed a commit to branch unstable
in repository https://gitbox.apache.org/repos/asf/incubator-kvrocks.git


The following commit(s) were added to refs/heads/unstable by this push:
     new 7bdde8ae Remove duplicate ERR word in some error responses (#1063)
7bdde8ae is described below

commit 7bdde8ae07f1f4690a701c36f98cd5ebcefad52c
Author: Yaroslav <to...@gmail.com>
AuthorDate: Wed Nov 2 08:08:44 2022 +0200

    Remove duplicate ERR word in some error responses (#1063)
    
    If an error message is starting with ERR while returning from Command::Parse
    or Command::Execute, the resulting message from Kvrocks contains
    "ERR ERR xxx"
    
    Also, made a few changes according to clang-tidy hints and fixed some typos.
---
 src/commands/redis_cmd.cc | 154 ++++++++++++++++++++++++++--------------------
 1 file changed, 87 insertions(+), 67 deletions(-)

diff --git a/src/commands/redis_cmd.cc b/src/commands/redis_cmd.cc
index d6cbcca0..c5817e80 100644
--- a/src/commands/redis_cmd.cc
+++ b/src/commands/redis_cmd.cc
@@ -24,7 +24,6 @@
 #include <glog/logging.h>
 #include <sys/socket.h>
 
-#include <algorithm>
 #include <chrono>
 #include <climits>
 #include <cmath>
@@ -78,6 +77,8 @@ const char *errUnbalancedStreamList =
 const char *errTimeoutIsNegative = "timeout is negative";
 const char *errLimitOptionNotAllowed = "syntax error, LIMIT cannot be used without the special ~ option";
 const char *errZSetLTGTNX = "GT, LT, and/or NX options at the same time are not compatible";
+const char *errScoreIsNotValidFloat = "score is not a valid float";
+const char *errValueIsNotFloat = "value is not a valid float";
 
 enum class AuthResult {
   OK,
@@ -172,9 +173,9 @@ class CommandNamespace : public Commander {
       if (args_[2] == "*") {
         std::vector<std::string> namespaces;
         auto tokens = config->tokens;
-        for (auto iter = tokens.begin(); iter != tokens.end(); iter++) {
-          namespaces.emplace_back(iter->second);  // namespace
-          namespaces.emplace_back(iter->first);   // token
+        for (auto &token : tokens) {
+          namespaces.emplace_back(token.second);  // namespace
+          namespaces.emplace_back(token.first);   // token
         }
         namespaces.emplace_back(kDefaultNamespace);
         namespaces.emplace_back(config->requirepass);
@@ -371,6 +372,7 @@ class CommandGetEx : public Commander {
     }
     return Status::OK();
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     std::string value;
     Redis::String string_db(svr->storage_, conn->GetNamespace());
@@ -566,6 +568,7 @@ class CommandSet : public Commander {
 
     return Status::OK();
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     int ret = 0;
     Redis::String string_db(svr->storage_, conn->GetNamespace());
@@ -696,6 +699,7 @@ class CommandMSetNX : public Commander {
     }
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     int ret;
     std::vector<StringPair> kvs;
@@ -887,6 +891,7 @@ class CommandGetBit : public Commander {
     if (!s.IsOK()) return s;
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     bool bit;
     Redis::Bitmap bitmap_db(svr->storage_, conn->GetNamespace());
@@ -1218,6 +1223,7 @@ class CommandPExpireAt : public Commander {
     timestamp_ = static_cast<int>(*parse_result / 1000);
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::Database redis(svr->storage_, conn->GetNamespace());
     rocksdb::Status s = redis.Expire(args_[1], timestamp_);
@@ -1421,6 +1427,7 @@ class CommandHMSet : public Commander {
     }
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     int ret;
     Redis::Hash hash_db(svr->storage_, conn->GetNamespace());
@@ -1534,10 +1541,8 @@ class CommandHRange : public Commander {
 
 class CommandPush : public Commander {
  public:
-  CommandPush(bool create_if_missing, bool left) {
-    left_ = left;
-    create_if_missing_ = create_if_missing;
-  }
+  CommandPush(bool create_if_missing, bool left) : left_(left), create_if_missing_(create_if_missing) {}
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::List list_db(svr->storage_, conn->GetNamespace());
     std::vector<Slice> elems;
@@ -1655,8 +1660,8 @@ class CommandRPop : public CommandPop {
 
 class CommandBPop : public Commander {
  public:
-  explicit CommandBPop(bool left) { left_ = left; }
-  ~CommandBPop() {
+  explicit CommandBPop(bool left) : left_(left) {}
+  ~CommandBPop() override {
     if (timer_ != nullptr) {
       event_free(timer_);
       timer_ = nullptr;
@@ -1813,6 +1818,7 @@ class CommandLRem : public Commander {
     count_ = *parse_result;
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     int ret;
     Redis::List list_db(svr->storage_, conn->GetNamespace());
@@ -1840,6 +1846,7 @@ class CommandLInsert : public Commander {
     }
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     int ret;
     Redis::List list_db(svr->storage_, conn->GetNamespace());
@@ -1867,6 +1874,7 @@ class CommandLRange : public Commander {
     stop_ = *parse_stop;
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::List list_db(svr->storage_, conn->GetNamespace());
     std::vector<std::string> elems;
@@ -1899,13 +1907,14 @@ class CommandLLen : public Commander {
 class CommandLIndex : public Commander {
  public:
   Status Parse(const std::vector<std::string> &args) override {
-    auto parse_reuslt = ParseInt<int>(args[2], 10);
-    if (!parse_reuslt) {
+    auto parse_result = ParseInt<int>(args[2], 10);
+    if (!parse_result) {
       return Status(Status::RedisParseErr, errValueNotInteger);
     }
-    index_ = *parse_reuslt;
+    index_ = *parse_result;
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::List list_db(svr->storage_, conn->GetNamespace());
     std::string elem;
@@ -1935,6 +1944,7 @@ class CommandLSet : public Commander {
     index_ = *parse_reuslt;
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::List list_db(svr->storage_, conn->GetNamespace());
     rocksdb::Status s = list_db.Set(args_[1], index_, args_[3]);
@@ -1962,6 +1972,7 @@ class CommandLTrim : public Commander {
 
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::List list_db(svr->storage_, conn->GetNamespace());
     rocksdb::Status s = list_db.Trim(args_[1], start_, stop_);
@@ -2138,6 +2149,7 @@ class CommandSPop : public Commander {
     }
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::Set set_db(svr->storage_, conn->GetNamespace());
     std::vector<std::string> members;
@@ -2174,6 +2186,7 @@ class CommandSRandMember : public Commander {
     }
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::Set set_db(svr->storage_, conn->GetNamespace());
     std::vector<std::string> members;
@@ -2330,12 +2343,12 @@ class CommandZAdd : public Commander {
       for (unsigned i = index; i < args.size(); i += 2) {
         double score = std::stod(args[i]);
         if (std::isnan(score)) {
-          return Status(Status::RedisParseErr, "ERR score is not a valid float");
+          return Status(Status::RedisParseErr, errScoreIsNotValidFloat);
         }
         member_scores_.emplace_back(MemberScore{args[i + 1], score});
       }
     } catch (const std::exception &e) {
-      return Status(Status::RedisParseErr, "ERR value is not a valid float");
+      return Status(Status::RedisParseErr, errValueIsNotFloat);
     }
     return Commander::Parse(args);
   }
@@ -2538,7 +2551,8 @@ class CommandZPopMax : public CommandZPop {
 
 class CommandZRange : public Commander {
  public:
-  explicit CommandZRange(bool reversed = false) { reversed_ = reversed; }
+  explicit CommandZRange(bool reversed = false) : reversed_(reversed) {}
+
   Status Parse(const std::vector<std::string> &args) override {
     auto parse_start = ParseInt<int>(args[2], 10);
     auto parse_stop = ParseInt<int>(args[3], 10);
@@ -2552,20 +2566,21 @@ class CommandZRange : public Commander {
     }
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::ZSet zset_db(svr->storage_, conn->GetNamespace());
-    std::vector<MemberScore> memeber_scores;
+    std::vector<MemberScore> member_scores;
     uint8_t flags = !reversed_ ? 0 : kZSetReversed;
-    rocksdb::Status s = zset_db.Range(args_[1], start_, stop_, flags, &memeber_scores);
+    rocksdb::Status s = zset_db.Range(args_[1], start_, stop_, flags, &member_scores);
     if (!s.ok()) {
       return Status(Status::RedisExecErr, s.ToString());
     }
     if (!with_scores_) {
-      output->append(Redis::MultiLen(memeber_scores.size()));
+      output->append(Redis::MultiLen(member_scores.size()));
     } else {
-      output->append(Redis::MultiLen(memeber_scores.size() * 2));
+      output->append(Redis::MultiLen(member_scores.size() * 2));
     }
-    for (const auto &ms : memeber_scores) {
+    for (const auto &ms : member_scores) {
       output->append(Redis::BulkString(ms.member));
       if (with_scores_) output->append(Redis::BulkString(Util::Float2String(ms.score)));
     }
@@ -2663,17 +2678,17 @@ class CommandZRangeByScore : public Commander {
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     int size;
     Redis::ZSet zset_db(svr->storage_, conn->GetNamespace());
-    std::vector<MemberScore> memeber_scores;
-    rocksdb::Status s = zset_db.RangeByScore(args_[1], spec_, &memeber_scores, &size);
+    std::vector<MemberScore> member_scores;
+    rocksdb::Status s = zset_db.RangeByScore(args_[1], spec_, &member_scores, &size);
     if (!s.ok()) {
       return Status(Status::RedisExecErr, s.ToString());
     }
     if (!with_scores_) {
-      output->append(Redis::MultiLen(memeber_scores.size()));
+      output->append(Redis::MultiLen(member_scores.size()));
     } else {
-      output->append(Redis::MultiLen(memeber_scores.size() * 2));
+      output->append(Redis::MultiLen(member_scores.size() * 2));
     }
-    for (const auto &ms : memeber_scores) {
+    for (const auto &ms : member_scores) {
       output->append(Redis::BulkString(ms.member));
       if (with_scores_) output->append(Redis::BulkString(Util::Float2String(ms.score)));
     }
@@ -2964,7 +2979,7 @@ class CommandGeoBase : public Commander {
     } else if (Util::ToLower(param) == "mi") {
       distance_unit_ = kDistanceMiles;
     } else {
-      return Status(Status::RedisParseErr, "distance unit para error");
+      return Status(Status::RedisParseErr, "unsupported unit provided. please use M, KM, FT, MI");
     }
     return Status::OK();
   }
@@ -2975,7 +2990,7 @@ class CommandGeoBase : public Commander {
       *longitude = std::stod(longitude_para);
       *latitude = std::stod(latitude_para);
     } catch (const std::exception &e) {
-      return Status(Status::RedisParseErr, "ERR value is not a valid float");
+      return Status(Status::RedisParseErr, errValueIsNotFloat);
     }
     if (*longitude < GEO_LONG_MIN || *longitude > GEO_LONG_MAX || *latitude < GEO_LAT_MIN || *latitude > GEO_LAT_MAX) {
       return Status(Status::RedisParseErr, "invalid longitude,latitude pair " + longitude_para + "," + latitude_para);
@@ -3136,7 +3151,7 @@ class CommandGeoRadius : public CommandGeoBase {
     try {
       radius_ = std::stod(args[4]);
     } catch (const std::exception &e) {
-      return Status(Status::RedisParseErr, "ERR value is not a valid float");
+      return Status(Status::RedisParseErr, errValueIsNotFloat);
     }
     s = ParseDistanceUnit(args[5]);
     if (!s.IsOK()) return s;
@@ -3165,7 +3180,7 @@ class CommandGeoRadius : public CommandGeoBase {
       } else if (Util::ToLower(args_[i]) == "count" && i + 1 < args_.size()) {
         auto parse_result = ParseInt<int>(args_[i + 1], 10);
         if (!parse_result) {
-          return Status(Status::RedisParseErr, "ERR count is not a valid int");
+          return Status(Status::RedisParseErr, errValueNotInteger);
         }
         count_ = *parse_result;
         i += 2;
@@ -3261,7 +3276,7 @@ class CommandGeoRadiusByMember : public CommandGeoRadius {
     try {
       radius_ = std::stod(args[3]);
     } catch (const std::exception &e) {
-      return Status(Status::RedisParseErr, "ERR value is not a valid float");
+      return Status(Status::RedisParseErr, errValueIsNotFloat);
     }
     auto s = ParseDistanceUnit(args[4]);
     if (!s.IsOK()) return s;
@@ -3559,7 +3574,7 @@ class CommandMulti : public Commander {
 class CommandDiscard : public Commander {
  public:
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
-    if (conn->IsFlagEnabled(Connection::kMultiExec) == false) {
+    if (!conn->IsFlagEnabled(Connection::kMultiExec)) {
       *output = Redis::Error("ERR DISCARD without MULTI");
       return Status::OK();
     }
@@ -3573,7 +3588,7 @@ class CommandDiscard : public Commander {
 class CommandExec : public Commander {
  public:
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
-    if (conn->IsFlagEnabled(Connection::kMultiExec) == false) {
+    if (!conn->IsFlagEnabled(Connection::kMultiExec)) {
       *output = Redis::Error("ERR EXEC without MULTI");
       return Status::OK();
     }
@@ -3615,7 +3630,7 @@ class CommandCompact : public Commander {
     Status s = svr->AsyncCompactDB(begin_key, end_key);
     if (!s.IsOK()) return s;
     *output = Redis::SimpleString("OK");
-    LOG(INFO) << "Commpact was triggered by manual with executed success";
+    LOG(INFO) << "Compact was triggered by manual with executed success";
     return Status::OK();
   }
 };
@@ -3692,7 +3707,7 @@ class CommandPublish : public Commander {
   }
 };
 
-void SubscribeCommmandReply(std::string *output, std::string name, std::string sub_name, int num) {
+void SubscribeCommandReply(std::string *output, std::string name, std::string sub_name, int num) {
   output->append(Redis::MultiLen(3));
   output->append(Redis::BulkString(name));
   output->append(sub_name.empty() ? Redis::NilString() : Redis::BulkString(sub_name));
@@ -3704,7 +3719,7 @@ class CommandSubscribe : public Commander {
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     for (unsigned i = 1; i < args_.size(); i++) {
       conn->SubscribeChannel(args_[i]);
-      SubscribeCommmandReply(output, "subscribe", args_[i], conn->SubscriptionsCount() + conn->PSubscriptionsCount());
+      SubscribeCommandReply(output, "subscribe", args_[i], conn->SubscriptionsCount() + conn->PSubscriptionsCount());
     }
     return Status::OK();
   }
@@ -3715,12 +3730,12 @@ class CommandUnSubscribe : public Commander {
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     if (args_.size() == 1) {
       conn->UnSubscribeAll(
-          std::bind(SubscribeCommmandReply, output, "unsubscribe", std::placeholders::_1, std::placeholders::_2));
+          std::bind(SubscribeCommandReply, output, "unsubscribe", std::placeholders::_1, std::placeholders::_2));
     } else {
       for (unsigned i = 1; i < args_.size(); i++) {
         conn->UnSubscribeChannel(args_[i]);
-        SubscribeCommmandReply(output, "unsubscribe", args_[i],
-                               conn->SubscriptionsCount() + conn->PSubscriptionsCount());
+        SubscribeCommandReply(output, "unsubscribe", args_[i],
+                              conn->SubscriptionsCount() + conn->PSubscriptionsCount());
       }
     }
     return Status::OK();
@@ -3732,7 +3747,7 @@ class CommandPSubscribe : public Commander {
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     for (unsigned i = 1; i < args_.size(); i++) {
       conn->PSubscribeChannel(args_[i]);
-      SubscribeCommmandReply(output, "psubscribe", args_[i], conn->SubscriptionsCount() + conn->PSubscriptionsCount());
+      SubscribeCommandReply(output, "psubscribe", args_[i], conn->SubscriptionsCount() + conn->PSubscriptionsCount());
     }
     return Status::OK();
   }
@@ -3743,12 +3758,12 @@ class CommandPUnSubscribe : public Commander {
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     if (args_.size() == 1) {
       conn->PUnSubscribeAll(
-          std::bind(SubscribeCommmandReply, output, "punsubscribe", std::placeholders::_1, std::placeholders::_2));
+          std::bind(SubscribeCommandReply, output, "punsubscribe", std::placeholders::_1, std::placeholders::_2));
     } else {
       for (unsigned i = 1; i < args_.size(); i++) {
         conn->PUnSubscribeChannel(args_[i]);
-        SubscribeCommmandReply(output, "punsubscribe", args_[i],
-                               conn->SubscriptionsCount() + conn->PSubscriptionsCount());
+        SubscribeCommandReply(output, "punsubscribe", args_[i],
+                              conn->SubscriptionsCount() + conn->PSubscriptionsCount());
       }
     }
     return Status::OK();
@@ -3774,7 +3789,7 @@ class CommandPubSub : public Commander {
       }
       return Status::OK();
     }
-    return Status(Status::RedisInvalidCmd, "ERR Unknown subcommand or wrong number of arguments");
+    return Status(Status::RedisInvalidCmd, "Unknown subcommand or wrong number of arguments");
   }
 
   Status Execute(Server *srv, Connection *conn, std::string *output) override {
@@ -3797,7 +3812,7 @@ class CommandPubSub : public Commander {
       return Status::OK();
     }
 
-    return Status(Status::RedisInvalidCmd, "ERR Unknown subcommand or wrong number of arguments");
+    return Status(Status::RedisInvalidCmd, "Unknown subcommand or wrong number of arguments");
   }
 
  private:
@@ -3810,7 +3825,7 @@ class CommandSlaveOf : public Commander {
  public:
   Status Parse(const std::vector<std::string> &args) override {
     host_ = args[1];
-    auto port = args[2];
+    const auto &port = args[2];
     if (Util::ToLower(host_) == "no" && Util::ToLower(port) == "one") {
       host_.clear();
       return Status::OK();
@@ -3822,6 +3837,7 @@ class CommandSlaveOf : public Commander {
     port_ = *parse_result;
     return Commander::Parse(args);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     if (svr->GetConfig()->cluster_enabled) {
       return Status(Status::RedisExecErr, "can't change to slave in cluster mode");
@@ -3914,7 +3930,7 @@ class CommandPSync : public Commander {
       LOG(INFO) << "Replication id in WAL: " << replid_in_wal;
 
       // We check replication id only when WAL has this sequence, since there may be no WAL,
-      // Or WAL may has nothing when starting from db of old version kvrocks.
+      // Or WAL may have nothing when starting from db of old version kvrocks.
       if (replid_in_wal.length() == kReplIdLength && replid_in_wal != replica_replid) {
         *output = "wrong replication id of the last log";
         need_full_sync = true;
@@ -4072,8 +4088,7 @@ class CommandClient : public Commander {
       // split by space to get the different fields.
       for (auto ch : args[2]) {
         if (ch < '!' || ch > '~') {
-          return Status(Status::RedisInvalidCmd,
-                        "ERR Client names cannot contain spaces, newlines or special characters");
+          return Status(Status::RedisInvalidCmd, "Client names cannot contain spaces, newlines or special characters");
         }
       }
       conn_name_ = args[2];
@@ -4214,7 +4229,7 @@ class CommandDebug : public Commander {
       try {
         second = std::stod(args[2]);
       } catch (const std::exception &e) {
-        return Status(Status::RedisParseErr, "ERR invalid debug sleep time");
+        return Status(Status::RedisParseErr, "invalid debug sleep time");
       }
       microsecond_ = static_cast<uint64_t>(second * 1000 * 1000);
       return Status::OK();
@@ -4359,7 +4374,7 @@ class CommandScanBase : public Commander {
     } else if (type == "count") {
       auto parse_result = ParseInt<int>(value, 10);
       if (!parse_result) {
-        return Status(Status::RedisParseErr, "ERR count param should be type int");
+        return Status(Status::RedisParseErr, "count param should be type int");
       }
       limit = *parse_result;
       if (limit <= 0) {
@@ -4400,6 +4415,7 @@ class CommandScanBase : public Commander {
 class CommandSubkeyScanBase : public CommandScanBase {
  public:
   CommandSubkeyScanBase() : CommandScanBase() {}
+
   Status Parse(const std::vector<std::string> &args) override {
     if (args.size() % 2 == 0) {
       return Status(Status::RedisParseErr, errWrongNumOfArguments);
@@ -4447,6 +4463,7 @@ class CommandSubkeyScanBase : public CommandScanBase {
 class CommandScan : public CommandScanBase {
  public:
   CommandScan() : CommandScanBase() {}
+
   Status Parse(const std::vector<std::string> &args) override {
     if (args.size() % 2 != 0) {
       return Status(Status::RedisParseErr, errWrongNumOfArguments);
@@ -4467,6 +4484,7 @@ class CommandScan : public CommandScanBase {
     }
     return Commander::Parse(args);
   }
+
   std::string GenerateOutput(const std::vector<std::string> &keys, std::string end_cursor) {
     std::vector<std::string> list;
     if (!end_cursor.empty()) {
@@ -4480,6 +4498,7 @@ class CommandScan : public CommandScanBase {
 
     return Redis::Array(list);
   }
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::Database redis_db(svr->storage_, conn->GetNamespace());
     std::vector<std::string> keys;
@@ -4529,6 +4548,7 @@ class CommandSScan : public CommandSubkeyScanBase {
 class CommandZScan : public CommandSubkeyScanBase {
  public:
   CommandZScan() : CommandSubkeyScanBase() {}
+
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
     Redis::ZSet zset_db(svr->storage_, conn->GetNamespace());
     std::vector<std::string> members;
@@ -4668,7 +4688,7 @@ class CommandFetchFile : public Commander {
       UniqueFD unique_fd{repl_fd};
       svr->IncrFetchFileThread();
 
-      for (auto file : files) {
+      for (const auto &file : files) {
         if (svr->IsStopped()) break;
         uint64_t file_size = 0, max_replication_bytes = 0;
         if (svr->GetConfig()->max_replication_mb > 0) {
@@ -4746,7 +4766,7 @@ class CommandCluster : public Commander {
   }
 
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
-    if (svr->GetConfig()->cluster_enabled == false) {
+    if (!svr->GetConfig()->cluster_enabled) {
       *output = Redis::Error("Cluster mode is not enabled");
       return Status::OK();
     }
@@ -4870,7 +4890,7 @@ class CommandClusterX : public Commander {
   }
 
   Status Execute(Server *svr, Connection *conn, std::string *output) override {
-    if (svr->GetConfig()->cluster_enabled == false) {
+    if (!svr->GetConfig()->cluster_enabled) {
       *output = Redis::Error("Cluster mode is not enabled");
       return Status::OK();
     }
@@ -5544,7 +5564,7 @@ class CommandXRead : public Commander {
 
     for (size_t i = streams_word_idx + 1; i <= streams_word_idx + number_of_streams; ++i) {
       streams_.push_back(args[i]);
-      auto id_str = args[i + number_of_streams];
+      const auto &id_str = args[i + number_of_streams];
       bool get_latest = id_str == "$";
       latest_marks_.push_back(get_latest);
       StreamEntryID id;
@@ -5610,14 +5630,14 @@ class CommandXRead : public Commander {
   Status sendResults(std::string *output, const std::vector<StreamReadResult> &results) {
     output->append(Redis::MultiLen(results.size()));
 
-    for (size_t i = 0; i < results.size(); ++i) {
+    for (const auto &result : results) {
       output->append(Redis::MultiLen(2));
-      output->append(Redis::BulkString(results[i].name));
-      output->append(Redis::MultiLen(results[i].entries.size()));
-      for (size_t j = 0; j < results[i].entries.size(); ++j) {
+      output->append(Redis::BulkString(result.name));
+      output->append(Redis::MultiLen(result.entries.size()));
+      for (const auto &entry : result.entries) {
         output->append(Redis::MultiLen(2));
-        output->append(Redis::BulkString(results[i].entries[j].key));
-        output->append(Redis::MultiBulkString(results[i].entries[j].values));
+        output->append(Redis::BulkString(entry.key));
+        output->append(Redis::MultiBulkString(entry.values));
       }
     }
 
@@ -5721,14 +5741,14 @@ class CommandXRead : public Commander {
 
     output.append(Redis::MultiLen(results.size()));
 
-    for (size_t i = 0; i < results.size(); ++i) {
+    for (const auto &result : results) {
       output.append(Redis::MultiLen(2));
-      output.append(Redis::BulkString(results[i].name));
-      output.append(Redis::MultiLen(results[i].entries.size()));
-      for (size_t j = 0; j < results[i].entries.size(); ++j) {
+      output.append(Redis::BulkString(result.name));
+      output.append(Redis::MultiLen(result.entries.size()));
+      for (const auto &entry : result.entries) {
         output.append(Redis::MultiLen(2));
-        output.append(Redis::BulkString(results[i].entries[j].key));
-        output.append(Redis::MultiBulkString(results[i].entries[j].values));
+        output.append(Redis::BulkString(entry.key));
+        output.append(Redis::MultiBulkString(entry.values));
       }
     }