func (a *Storage) Get(userId string) (Notes, error) { c := a.store.Get() count, err := redis.Int(c.Do("LLEN", userId)) if err != nil { return nil, err } items, err := redis.Values(c.Do("LRANGE", userId, 0, count)) if err != nil { return nil, err } var all Notes for i := range items { var n Note serialized, _ := redis.Bytes(items[i], nil) json.Unmarshal(serialized, &n) all = append(all, &n) } return all, nil }
// Dial dials the local Redis server and selects database 9. To prevent // stomping on real data, DialTestDB fails if database 9 contains data. The // returned connection flushes database 9 on close. func Dial() (redis.Conn, error) { c, err := redis.DialTimeout("tcp", ":6379", 0, 1*time.Second, 1*time.Second) if err != nil { return nil, err } _, err = c.Do("SELECT", "9") if err != nil { c.Close() return nil, err } n, err := redis.Int(c.Do("DBSIZE")) if err != nil { c.Close() return nil, err } if n != 0 { c.Close() return nil, errors.New("database #9 is not empty, test can not continue") } return testConn{c}, nil }
func ExampleInt() { c, err := dial() if err != nil { fmt.Println(err) return } defer c.Close() c.Do("SET", "k1", 1) n, _ := redis.Int(c.Do("GET", "k1")) fmt.Printf("%#v\n", n) n, _ = redis.Int(c.Do("INCR", "k1")) fmt.Printf("%#v\n", n) // Output: // 1 // 2 }