From 9b63e51300647c3dd69a9f4ceb62b37c4e5ca016 Mon Sep 17 00:00:00 2001
From: tiny-craft <137850705+tiny-craft@users.noreply.github.com>
Date: Tue, 25 Jul 2023 11:51:23 +0800
Subject: [PATCH] perf: grouped server info
---
backend/services/connection_service.go | 14 +++--
.../content_value/ContentServerStatus.vue | 55 ++++++++++---------
.../src/components/sidebar/BrowserPane.vue | 14 ++---
3 files changed, 46 insertions(+), 37 deletions(-)
diff --git a/backend/services/connection_service.go b/backend/services/connection_service.go
index cfbccfa..7ba560a 100644
--- a/backend/services/connection_service.go
+++ b/backend/services/connection_service.go
@@ -201,7 +201,7 @@ func (c *connectionService) OpenConnection(name string) (resp types.JSResp) {
info := c.parseInfo(res)
for i := 0; i < totaldb; i++ {
dbName := "db" + strconv.Itoa(i)
- dbInfoStr := info[dbName]
+ dbInfoStr := info["Keyspace"][dbName]
if len(dbInfoStr) > 0 {
dbInfo := c.parseDBItemInfo(dbInfoStr)
dbs = append(dbs, types.ConnectionDB{
@@ -296,17 +296,21 @@ func (c *connectionService) getRedisClient(connName string, db int) (*redis.Clie
// parse command response content which use "redis info"
// # Keyspace\r\ndb0:keys=2,expires=1,avg_ttl=1877111749\r\ndb1:keys=33,expires=0,avg_ttl=0\r\ndb3:keys=17,expires=0,avg_ttl=0\r\ndb5:keys=3,expires=0,avg_ttl=0\r\n
-func (c *connectionService) parseInfo(info string) map[string]string {
- parsedInfo := map[string]string{}
+func (c *connectionService) parseInfo(info string) map[string]map[string]string {
+ parsedInfo := map[string]map[string]string{}
lines := strings.Split(info, "\r\n")
if len(lines) > 0 {
+ var subInfo map[string]string
for _, line := range lines {
- if !strings.HasPrefix(line, "#") {
+ if strings.HasPrefix(line, "#") {
+ subInfo = map[string]string{}
+ parsedInfo[strings.TrimSpace(strings.TrimLeft(line, "#"))] = subInfo
+ } else {
items := strings.SplitN(line, ":", 2)
if len(items) < 2 {
continue
}
- parsedInfo[items[0]] = items[1]
+ subInfo[items[0]] = items[1]
}
}
}
diff --git a/frontend/src/components/content_value/ContentServerStatus.vue b/frontend/src/components/content_value/ContentServerStatus.vue
index 352488b..9879db9 100644
--- a/frontend/src/components/content_value/ContentServerStatus.vue
+++ b/frontend/src/components/content_value/ContentServerStatus.vue
@@ -1,5 +1,5 @@
@@ -127,7 +128,7 @@ const infoFilter = ref('')
@@ -155,23 +156,27 @@ const infoFilter = ref('')
-
+
+
+
+
+
diff --git a/frontend/src/components/sidebar/BrowserPane.vue b/frontend/src/components/sidebar/BrowserPane.vue
index 18f454a..4ca7047 100644
--- a/frontend/src/components/sidebar/BrowserPane.vue
+++ b/frontend/src/components/sidebar/BrowserPane.vue
@@ -98,13 +98,13 @@ const filterTypeOptions = computed(() => {