diff --git a/geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/RedisStatsIntegrationTest.java b/geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/RedisStatsIntegrationTest.java
index ae90cd9..b49863f 100644
--- a/geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/RedisStatsIntegrationTest.java
+++ b/geode-redis/src/integrationTest/java/org/apache/geode/redis/internal/RedisStatsIntegrationTest.java
@@ -49,6 +49,10 @@
   private static long START_TIME;
   private static StatisticsClock statisticsClock;
 
+  private Long preTestKeySpaceHits = 0l;
+  private Long preTestKeySpaceMisses = 0l;
+  private Long preTestConnectionsReceived = 0l;
+  private Long preTestConnectedClients = 0l;
 
 
   @ClassRule
@@ -64,19 +68,32 @@
   public void before() {
     jedis = new Jedis("localhost", server.getPort(), TIMEOUT);
 
+    redisStats = server.getServer().getStats();
+
+    long preSetupCommandsProcessed = redisStats.getCommandsProcessed();
+
     jedis.set(EXISTING_STRING_KEY, "A_Value");
     jedis.hset(EXISTING_HASH_KEY, "Field1", "Value1");
     jedis.sadd(EXISTING_SET_KEY_1, "m1", "m2", "m3");
     jedis.sadd(EXISTING_SET_KEY_2, "m4", "m5", "m6");
 
-    redisStats = server.getServer().getStats();
-    redisStats.clearAllStats();
+    GeodeAwaitility.await().atMost(Duration.ofSeconds(2))
+        .untilAsserted(() -> assertThat(redisStats.getCommandsProcessed())
+            .isEqualTo(preSetupCommandsProcessed + 4));
+
+    preTestKeySpaceHits = redisStats.getKeyspaceHits();
+    preTestKeySpaceMisses = redisStats.getKeyspaceMisses();
+    preTestConnectionsReceived = redisStats.getTotalConnectionsReceived();
+    preTestConnectedClients = redisStats.getConnectedClients();
   }
 
   @After
   public void after() {
     jedis.flushAll();
     jedis.close();
+    GeodeAwaitility.await().atMost(Duration.ofSeconds(2))
+        .untilAsserted(() -> assertThat(redisStats.getConnectedClients())
+            .isEqualTo(0));
   }
 
   // #############Stats Section###################################
@@ -86,10 +103,10 @@
     jedis.get(EXISTING_STRING_KEY);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
 
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -98,9 +115,9 @@
     jedis.get("Nonexistent_Key");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   // TODO: Set doesn't work like native Redis!
@@ -109,9 +126,9 @@
     jedis.set(EXISTING_STRING_KEY, "New_Value");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   // TODO: Set doesn't work like native Redis!
@@ -120,9 +137,9 @@
     jedis.set("Another_Key", "Another_Value");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -130,9 +147,9 @@
     jedis.getbit(EXISTING_STRING_KEY, 0);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -140,9 +157,9 @@
     jedis.getbit("Nonexistent_Key", 0);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -150,9 +167,9 @@
     jedis.getrange(EXISTING_STRING_KEY, 0, 1);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -160,9 +177,9 @@
     jedis.getrange("Nonexistent_Key", 0, 1);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -170,9 +187,9 @@
     jedis.getSet(EXISTING_STRING_KEY, "New_Value");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -180,9 +197,9 @@
     jedis.getSet("Nonexistent_Key", "FakeValue");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -190,9 +207,9 @@
     jedis.strlen(EXISTING_STRING_KEY);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -200,9 +217,9 @@
     jedis.strlen(NONEXISTENT_KEY);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -210,9 +227,9 @@
     jedis.mget(EXISTING_STRING_KEY, "Nonexistent_Key");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -220,9 +237,9 @@
     jedis.bitop(BitOP.AND, EXISTING_STRING_KEY, EXISTING_STRING_KEY, "Nonexistent_Key");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0 + 2);
+        .isEqualTo(preTestKeySpaceHits + 2);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -230,9 +247,9 @@
     jedis.bitcount(EXISTING_STRING_KEY);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -240,9 +257,9 @@
     jedis.bitcount("Nonexistent_Key");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -250,9 +267,9 @@
     jedis.bitpos(EXISTING_STRING_KEY, true);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -260,9 +277,9 @@
     jedis.bitpos("Nonexistent_Key", true);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -270,9 +287,9 @@
     jedis.hget(EXISTING_HASH_KEY, "Field1");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -280,9 +297,9 @@
     jedis.hget("Nonexistent_Hash", "Field1");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -290,9 +307,9 @@
     jedis.smembers(EXISTING_SET_KEY_1);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -300,9 +317,9 @@
     jedis.smembers("Nonexistent_Set");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -314,9 +331,9 @@
         "Nonexistent_Set");
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0 + 2);
+        .isEqualTo(preTestKeySpaceHits + 2);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -324,9 +341,9 @@
     jedis.exists(EXISTING_STRING_KEY);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -334,9 +351,9 @@
     jedis.exists(NONEXISTENT_KEY);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -344,9 +361,9 @@
     jedis.type(EXISTING_STRING_KEY);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -354,9 +371,9 @@
     jedis.type(NONEXISTENT_KEY);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -364,9 +381,9 @@
     jedis.ttl(EXISTING_STRING_KEY);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceHits + 1);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceMisses);
   }
 
   @Test
@@ -374,9 +391,9 @@
     jedis.ttl(NONEXISTENT_KEY);
 
     assertThat(redisStats.getKeyspaceHits())
-        .isEqualTo(0);
+        .isEqualTo(preTestKeySpaceHits);
     assertThat(redisStats.getKeyspaceMisses())
-        .isEqualTo(1);
+        .isEqualTo(preTestKeySpaceMisses + 1);
   }
 
   @Test
@@ -384,8 +401,9 @@
     long initialCommandsProcessed = redisStats.getCommandsProcessed();
     jedis.ttl("key");
 
-    assertThat(redisStats.getCommandsProcessed())
-        .isEqualTo(initialCommandsProcessed + 1);
+    GeodeAwaitility.await().atMost(Duration.ofSeconds(5))
+        .untilAsserted(() -> assertThat(redisStats.getCommandsProcessed())
+            .isEqualTo(initialCommandsProcessed + 1));
   }
 
   @Test
@@ -468,33 +486,33 @@
 
   }
 
-
   // ######################### Clients Section #################################
 
   @Test
   public void clientsStat_withConnectAndClose_isCorrect() {
 
-    jedis = new Jedis("localhost", server.getPort(), TIMEOUT);
-    jedis.ping();
+    Jedis jedis2 = new Jedis("localhost", server.getPort(), TIMEOUT);
+    jedis2.ping();
 
-    assertThat(redisStats.getConnectedClients()).isEqualTo(1);
+    assertThat(redisStats.getConnectedClients()).isEqualTo(preTestConnectedClients + 1);
 
-    jedis.close();
+    jedis2.close();
     GeodeAwaitility.await().atMost(Duration.ofSeconds(2))
-        .untilAsserted(() -> assertThat(redisStats.getConnectedClients()).isEqualTo(0));
+        .untilAsserted(
+            () -> assertThat(redisStats.getConnectedClients()).isEqualTo(preTestConnectedClients));
   }
 
   @Test
-  public void connectionsReceivedStat_shouldIncrement_WhenNewConnectionOccurs() {
+  public void totalConnectionsReceivedStat_shouldIncrement_WhenNewConnectionOccurs() {
 
-    jedis = new Jedis("localhost", server.getPort(), TIMEOUT);
-    jedis.ping();
+    Jedis jedis2 = new Jedis("localhost", server.getPort(), TIMEOUT);
+    jedis2.ping();
 
-    assertThat(redisStats.getConnectionsReceived()).isEqualTo(1);
+    assertThat(redisStats.getTotalConnectionsReceived()).isEqualTo(preTestConnectionsReceived + 1);
 
-    jedis.close();
+    jedis2.close();
 
-    assertThat(redisStats.getConnectionsReceived()).isEqualTo(1);
+    assertThat(redisStats.getTotalConnectionsReceived()).isEqualTo(preTestConnectionsReceived + 1);
   }
 
   // ######################## Server Section ################
@@ -525,7 +543,6 @@
         .isEqualTo(expectedDays);
   }
 
-
   public long getStartTime() {
     return START_TIME;
   }
diff --git a/geode-redis/src/main/java/org/apache/geode/redis/internal/RedisStats.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/RedisStats.java
index 8f502d5..47e1396 100644
--- a/geode-redis/src/main/java/org/apache/geode/redis/internal/RedisStats.java
+++ b/geode-redis/src/main/java/org/apache/geode/redis/internal/RedisStats.java
@@ -52,9 +52,8 @@
   private static final int expirationsId;
   private static final int expirationTimeId;
   private final AtomicLong commandsProcessed = new AtomicLong();
-  private final AtomicLong opsPerSecond = new AtomicLong();
   private final AtomicLong totalNetworkBytesRead = new AtomicLong();
-  private final AtomicLong connectionsReceived = new AtomicLong();
+  private final AtomicLong totalConnectionsReceived = new AtomicLong();
   private final AtomicLong expirations = new AtomicLong();
   private final AtomicLong keyspaceHits = new AtomicLong();
   private final AtomicLong keyspaceMisses = new AtomicLong();
@@ -114,22 +113,6 @@
     perSecondExecutor = startPerSecondUpdater();
   }
 
-  public void clearAllStats() {
-    commandsProcessed.set(0);
-    opsPerSecond.set(0);
-    totalNetworkBytesRead.set(0);
-    connectionsReceived.set(0);
-    expirations.set(0);
-    keyspaceHits.set(0);
-    keyspaceMisses.set(0);
-    stats.setLong(clientId, 0);
-    stats.setLong(passiveExpirationChecksId, 0);
-    stats.setLong(passiveExpirationCheckTimeId, 0);
-    stats.setLong(passiveExpirationsId, 0);
-    stats.setLong(expirationsId, 0);
-    stats.setLong(expirationTimeId, 0);
-  }
-
   private static void fillListWithCompletedCommandDescriptors(StatisticsTypeFactory f,
       ArrayList<StatisticDescriptor> descriptorList) {
     for (RedisCommandType command : RedisCommandType.values()) {
@@ -211,7 +194,7 @@
   }
 
   public void addClient() {
-    connectionsReceived.incrementAndGet();
+    totalConnectionsReceived.incrementAndGet();
     stats.incLong(clientId, 1);
   }
 
@@ -219,8 +202,8 @@
     stats.incLong(clientId, -1);
   }
 
-  public long getConnectionsReceived() {
-    return connectionsReceived.get();
+  public long getTotalConnectionsReceived() {
+    return totalConnectionsReceived.get();
   }
 
   public long getConnectedClients() {
diff --git a/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/server/InfoExecutor.java b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/server/InfoExecutor.java
index 45337bb..bba1b22 100644
--- a/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/server/InfoExecutor.java
+++ b/geode-redis/src/main/java/org/apache/geode/redis/internal/executor/server/InfoExecutor.java
@@ -101,7 +101,7 @@
             "instantaneous_ops_per_sec:" + redisStats.getOpsPerformedOverLastSecond() + "\r\n" +
             "total_net_input_bytes:" + redisStats.getTotalNetworkBytesRead() + "\r\n" +
             "instantaneous_input_kbps:" + instantaneous_input_kbps + "\r\n" +
-            "total_connections_received:" + redisStats.getConnectionsReceived() + "\r\n" +
+            "total_connections_received:" + redisStats.getTotalConnectionsReceived() + "\r\n" +
             "keyspace_hits:" + redisStats.getKeyspaceHits() + "\r\n" +
             "keyspace_misses:" + redisStats.getKeyspaceMisses() + "\r\n" +
             "evicted_keys:0\r\n" +
