func (m *baseModel) getLastUpdated(id string, conn redis.Conn) (*time.Time, error) { timeString, err := redis.String(conn.Do("HGET", m.idType+"s:updated", id)) if err != nil || timeString == "" { return nil, err } t := time.Time{} err = t.UnmarshalText([]byte(timeString)) return &t, err }
func (m *ModuleModel) GetConfig(moduleID string, conn redis.Conn) (*string, error) { m.syncing.Wait() exists, err := redis.Bool(conn.Do("HEXISTS", "module:"+moduleID, "config")) if exists { item, err := conn.Do("HGET", "module:"+moduleID, "config") config, err := redis.String(item, err) return &config, err } return nil, err }
func ExampleString() { c, err := dial() if err != nil { panic(err) } defer c.Close() c.Do("SET", "hello", "world") s, err := redis.String(c.Do("GET", "hello")) fmt.Printf("%#v\n", s) // Output: // "world" }
func (m *ThingModel) GetThingIDForDevice(deviceID string, conn redis.Conn) (*string, error) { item, err := conn.Do("HGET", "device-thing", deviceID) if err != nil { return nil, err } if item == nil { return nil, RecordNotFound } thingID, err := redis.String(item, err) return &thingID, err }
// This example implements ZPOP as described at // http://redis.io/topics/transactions using WATCH/MULTI/EXEC and scripting. func Example_zpop() { c, err := dial() if err != nil { fmt.Println(err) return } defer c.Close() // Add test data using a pipeline. for i, member := range []string{"red", "blue", "green"} { c.Send("ZADD", "zset", i, member) } if _, err := c.Do(""); err != nil { fmt.Println(err) return } // Pop using WATCH/MULTI/EXEC v, err := zpop(c, "zset") if err != nil { fmt.Println(err) return } fmt.Println(v) // Pop using a script. v, err = redis.String(zpopScript.Do(c, "zset")) if err != nil { fmt.Println(err) return } fmt.Println(v) // Output: // red // blue }