From 3b31fda887eeb9261b3e405c47cbc2f555969026 Mon Sep 17 00:00:00 2001 From: John Date: Tue, 10 Apr 2018 15:36:35 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84gcfg=E5=8C=85=E4=BD=BF?= =?UTF-8?q?=E7=94=A8=E7=A4=BA=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- g/encoding/gjson/gjson.go | 5 ++++- geg/os/gcfg/config.yml | 23 +++++++++++++++++++++++ geg/os/gcfg/gcfg1.go | 15 +++++++++++++++ geg/os/gcfg/gcfg2.go | 13 +++++++++++++ geg/os/gcfg/memcache.yml | 6 ++++++ geg/os/gcfg/redis.yml | 14 ++++++++++++++ 6 files changed, 75 insertions(+), 1 deletion(-) create mode 100644 geg/os/gcfg/config.yml create mode 100644 geg/os/gcfg/gcfg1.go create mode 100644 geg/os/gcfg/gcfg2.go create mode 100644 geg/os/gcfg/memcache.yml create mode 100644 geg/os/gcfg/redis.yml diff --git a/g/encoding/gjson/gjson.go b/g/encoding/gjson/gjson.go index aa4ced6cb..197abe523 100644 --- a/g/encoding/gjson/gjson.go +++ b/g/encoding/gjson/gjson.go @@ -411,10 +411,13 @@ func (j *Json) Get(pattern string) interface{} { // 根据pattern层级查找变量指针 func (j *Json) getPointerByPattern(pattern string) *interface{} { - start := 0 index := len(pattern) + start := 0 length := 0 pointer := j.p + if index == 0 { + return pointer + } for { if r := j.checkPatternByPointer(pattern[start:index], pointer); r != nil { length += index - start diff --git a/geg/os/gcfg/config.yml b/geg/os/gcfg/config.yml new file mode 100644 index 000000000..1505e811d --- /dev/null +++ b/geg/os/gcfg/config.yml @@ -0,0 +1,23 @@ +redis: + cache: + - host: 192.168.0.100 + port: 6379 + db: 0 + - host: 192.168.0.100 + port: 6379 + db: 1 + disk: + - host: 192.168.0.100 + port: 6380 + db: 0 + - host: 192.168.0.100 + port: 6380 + db: 1 + +memcache: + - host: 192.168.0.101 + port: 11211 + expire: 60 + - host: 192.168.0.102 + port: 11211 + expire: 60 diff --git a/geg/os/gcfg/gcfg1.go b/geg/os/gcfg/gcfg1.go new file mode 100644 index 000000000..98a1b117e --- /dev/null +++ b/geg/os/gcfg/gcfg1.go @@ -0,0 +1,15 @@ +package main + +import ( + "fmt" + "gitee.com/johng/gf/g/os/gcfg" +) + +func main() { + c := gcfg.New("/home/john/Workspace/Go/GOPATH/src/gitee.com/johng/gf/geg/os/gcfg") + redisConfig := c.GetArray("redis-cache", "redis.yml") + memcacheConfig := c.GetArray("", "memcache.yml") + fmt.Println(redisConfig) + fmt.Println(memcacheConfig) +} + diff --git a/geg/os/gcfg/gcfg2.go b/geg/os/gcfg/gcfg2.go new file mode 100644 index 000000000..76640d67a --- /dev/null +++ b/geg/os/gcfg/gcfg2.go @@ -0,0 +1,13 @@ +package main + +import ( + "fmt" + "gitee.com/johng/gf/g/os/gcfg" +) + +func main() { + c := gcfg.New("/home/john/Workspace/Go/GOPATH/src/gitee.com/johng/gf/geg/os/gcfg") + v := c.GetArray("memcache") + fmt.Println(v) +} + diff --git a/geg/os/gcfg/memcache.yml b/geg/os/gcfg/memcache.yml new file mode 100644 index 000000000..1808acaec --- /dev/null +++ b/geg/os/gcfg/memcache.yml @@ -0,0 +1,6 @@ +- host: 192.168.0.101 + port: 11211 + expire: 60 +- host: 192.168.0.102 + port: 11211 + expire: 60 diff --git a/geg/os/gcfg/redis.yml b/geg/os/gcfg/redis.yml new file mode 100644 index 000000000..db0b6d79a --- /dev/null +++ b/geg/os/gcfg/redis.yml @@ -0,0 +1,14 @@ +redis-cache: + - host: 192.168.0.100 + port: 6379 + db: 0 + - host: 192.168.0.100 + port: 6379 + db: 1 +redis-disk: + - host: 192.168.0.100 + port: 6380 + db: 0 + - host: 192.168.0.100 + port: 6380 + db: 1 \ No newline at end of file