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  }