github.com/gogf/gf@v1.16.9/database/gredis/gredis_z_example_test.go (about) 1 // Copyright GoFrame Author(https://goframe.org). All Rights Reserved. 2 // 3 // This Source Code Form is subject to the terms of the MIT License. 4 // If a copy of the MIT was not distributed with this file, 5 // You can obtain one at https://github.com/gogf/gf. 6 7 package gredis_test 8 9 import ( 10 "fmt" 11 "github.com/gogf/gf/container/gvar" 12 "github.com/gogf/gf/frame/g" 13 "github.com/gogf/gf/util/gutil" 14 ) 15 16 func Example_autoMarshalUnmarshalMap() { 17 var ( 18 err error 19 result *gvar.Var 20 key = "user" 21 data = g.Map{ 22 "id": 10000, 23 "name": "john", 24 } 25 ) 26 _, err = g.Redis().Do("SET", key, data) 27 if err != nil { 28 panic(err) 29 } 30 result, err = g.Redis().DoVar("GET", key) 31 if err != nil { 32 panic(err) 33 } 34 fmt.Println(result.Map()) 35 } 36 37 func Example_autoMarshalUnmarshalStruct() { 38 type User struct { 39 Id int 40 Name string 41 } 42 var ( 43 err error 44 result *gvar.Var 45 key = "user" 46 user = &User{ 47 Id: 10000, 48 Name: "john", 49 } 50 ) 51 52 _, err = g.Redis().Do("SET", key, user) 53 if err != nil { 54 panic(err) 55 } 56 result, err = g.Redis().DoVar("GET", key) 57 if err != nil { 58 panic(err) 59 } 60 61 var user2 *User 62 if err = result.Struct(&user2); err != nil { 63 panic(err) 64 } 65 fmt.Println(user2.Id, user2.Name) 66 } 67 68 func Example_autoMarshalUnmarshalStructSlice() { 69 type User struct { 70 Id int 71 Name string 72 } 73 var ( 74 err error 75 result *gvar.Var 76 key = "user-slice" 77 users1 = []User{ 78 { 79 Id: 1, 80 Name: "john1", 81 }, 82 { 83 Id: 2, 84 Name: "john2", 85 }, 86 } 87 ) 88 89 _, err = g.Redis().Do("SET", key, users1) 90 if err != nil { 91 panic(err) 92 } 93 result, err = g.Redis().DoVar("GET", key) 94 if err != nil { 95 panic(err) 96 } 97 98 var users2 []User 99 if err = result.Structs(&users2); err != nil { 100 panic(err) 101 } 102 fmt.Println(users2) 103 } 104 105 func Example_hSet() { 106 var ( 107 err error 108 result *gvar.Var 109 key = "user" 110 ) 111 _, err = g.Redis().Do("HSET", key, "id", 10000) 112 if err != nil { 113 panic(err) 114 } 115 _, err = g.Redis().Do("HSET", key, "name", "john") 116 if err != nil { 117 panic(err) 118 } 119 result, err = g.Redis().DoVar("HGETALL", key) 120 if err != nil { 121 panic(err) 122 } 123 fmt.Println(result.Map()) 124 125 // May Output: 126 // map[id:10000 name:john] 127 } 128 129 func Example_hMSet_Map() { 130 var ( 131 key = "user_100" 132 data = g.Map{ 133 "name": "gf", 134 "sex": 0, 135 "score": 100, 136 } 137 ) 138 _, err := g.Redis().Do("HMSET", append(g.Slice{key}, gutil.MapToSlice(data)...)...) 139 if err != nil { 140 g.Log().Fatal(err) 141 } 142 v, err := g.Redis().DoVar("HMGET", key, "name") 143 if err != nil { 144 g.Log().Fatal(err) 145 } 146 fmt.Println(v.Slice()) 147 148 // May Output: 149 // [gf] 150 } 151 152 func Example_hMSet_Struct() { 153 type User struct { 154 Name string `json:"name"` 155 Sex int `json:"sex"` 156 Score int `json:"score"` 157 } 158 var ( 159 key = "user_100" 160 data = &User{ 161 Name: "gf", 162 Sex: 0, 163 Score: 100, 164 } 165 ) 166 _, err := g.Redis().Do("HMSET", append(g.Slice{key}, gutil.StructToSlice(data)...)...) 167 if err != nil { 168 g.Log().Fatal(err) 169 } 170 v, err := g.Redis().DoVar("HMGET", key, "name") 171 if err != nil { 172 g.Log().Fatal(err) 173 } 174 fmt.Println(v.Slice()) 175 176 // May Output: 177 // ["gf"] 178 }