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(() => {