예제 #1
0
파일: example.go 프로젝트: Greentor/roshi
func main() {
	c, err := redis.Dial("tcp", ":6379")
	if err != nil {
		log.Fatal(err)
	}

	v0 := &MyStruct{1, "hello"}

	_, err = c.Do("HMSET", redisx.AppendStruct([]interface{}{"key"}, v0)...)
	if err != nil {
		log.Fatal(err)
	}

	reply, err := c.Do("HGETALL", "key")
	if err != nil {
		log.Fatal(err)
	}

	v1 := &MyStruct{}

	err = redisx.ScanStruct(reply, v1)
	if err != nil {
		log.Fatal(err)
	}
	log.Printf("v1=%v", v1)
}
예제 #2
0
func TestFormatStruct(t *testing.T) {
	for _, tt := range formatStructTests {
		args := redisx.AppendStruct(nil, tt.value)
		if !reflect.DeepEqual(args, tt.args) {
			t.Fatalf("FormatStruct(%s) returned %v, want %v", tt.title, args, tt.args)
		}
	}
}
예제 #3
0
//将值插入Hash表中 0:成功 1:失败
func HmSet(src interface{}, key string) int {
	c := InitRedis()
	_, err := c.Do("HMSET", redisx.AppendStruct([]interface{}{key}, src)...)
	if err != nil {
		log.Fatal(err)
		return 1
	}
	return 0
}
예제 #4
0
// Add creates a new album and returns its id, or an error.
func (db *routesDB) CreateRoute(route *RouteInfo) bool {
	key := "routeinfo:" + route.Hostname
	_, err := db.rclient.Do("HMSET", redisx.AppendStruct([]interface{}{key}, route)...)
	if err != nil {
		log.Fatal(err)
	}

	// Add to index
	_, err = db.rclient.Do("SADD", "index:hostnames", route.Hostname)
	if err != nil {
		log.Fatal(err)
	}
	return true
}