github.com/cellofellow/gopkg@v0.0.0-20140722061823-eec0544a62ad/database/redis/example.go (about)

     1  // Copyright 2014 <chaishushan{AT}gmail.com>. All rights reserved.
     2  // Use of this source code is governed by a BSD-style
     3  // license that can be found in the LICENSE file.
     4  
     5  // +build ingore
     6  
     7  package main
     8  
     9  import (
    10  	"fmt"
    11  	"os"
    12  	"time"
    13  
    14  	"chai2010.gopkg/datebase/redis"
    15  )
    16  
    17  func errHndlr(err error) {
    18  	if err != nil {
    19  		fmt.Println("error:", err)
    20  		os.Exit(1)
    21  	}
    22  }
    23  
    24  func main() {
    25  	c, err := redis.DialTimeout("tcp", "127.0.0.1:6379", time.Duration(10)*time.Second)
    26  	errHndlr(err)
    27  	defer c.Close()
    28  
    29  	// select database
    30  	r := c.Cmd("select", 8)
    31  	errHndlr(r.Err)
    32  
    33  	r = c.Cmd("flushdb")
    34  	errHndlr(r.Err)
    35  
    36  	r = c.Cmd("echo", "Hello world!")
    37  	errHndlr(r.Err)
    38  
    39  	s, err := r.Str()
    40  	errHndlr(err)
    41  	fmt.Println("echo:", s)
    42  
    43  	//* Strings
    44  	r = c.Cmd("set", "mykey0", "myval0")
    45  	errHndlr(r.Err)
    46  
    47  	s, err = c.Cmd("get", "mykey0").Str()
    48  	errHndlr(err)
    49  	fmt.Println("mykey0:", s)
    50  
    51  	myhash := map[string]string{
    52  		"mykey1": "myval1",
    53  		"mykey2": "myval2",
    54  		"mykey3": "myval3",
    55  	}
    56  
    57  	// Alternatively:
    58  	// c.Cmd("mset", "mykey1", "myval1", "mykey2", "myval2", "mykey3", "myval3")
    59  	r = c.Cmd("mset", myhash)
    60  	errHndlr(r.Err)
    61  
    62  	ls, err := c.Cmd("mget", "mykey1", "mykey2", "mykey3").List()
    63  	errHndlr(err)
    64  	fmt.Println("mykeys values:", ls)
    65  
    66  	//* List handling
    67  	mylist := []string{"foo", "bar", "qux"}
    68  
    69  	// Alternativaly:
    70  	// c.Cmd("rpush", "mylist", "foo", "bar", "qux")
    71  	r = c.Cmd("rpush", "mylist", mylist)
    72  	errHndlr(r.Err)
    73  
    74  	mylist, err = c.Cmd("lrange", "mylist", 0, -1).List()
    75  	errHndlr(err)
    76  
    77  	fmt.Println("mylist:", mylist)
    78  
    79  	//* Hash handling
    80  
    81  	// Alternatively:
    82  	// c.Cmd("hmset", "myhash", ""mykey1", "myval1", "mykey2", "myval2", "mykey3", "myval3")
    83  	r = c.Cmd("hmset", "myhash", myhash)
    84  	errHndlr(r.Err)
    85  
    86  	myhash, err = c.Cmd("hgetall", "myhash").Hash()
    87  	errHndlr(err)
    88  
    89  	fmt.Println("myhash:", myhash)
    90  
    91  	//* Pipelining
    92  	c.Append("set", "multikey", "multival")
    93  	c.Append("get", "multikey")
    94  
    95  	c.GetReply()     // set
    96  	r = c.GetReply() // get
    97  	errHndlr(r.Err)
    98  
    99  	s, err = r.Str()
   100  	errHndlr(err)
   101  	fmt.Println("multikey:", s)
   102  }