largeQ
使用gob、json或类似的编码包将结构值编码为 []byte 。将 []byte 存储在 Redis 中。获取数据时逆向过程。假设 Redis 客户端具有Set和Get方法,使用 JSON 包的代码将如下所示:func set(c *RedisClient, key string, value interface{}) error { p, err := json.Marshal(value) if err != nil { return err } return c.Set(key, p)}func get(c *RedisClient, key string, dest interface{}) error { p, err := c.Get(key) if err != nil { return err } return json.Unmarshal(p, dest)}像这样使用它来保存一个值:var v someTypeif err := set(c, key, v); err != nil { // handle error}并像这样检索一个值。请注意,指向该值的指针会传递给get.var v someTypeif err := get(c, key, &v); err != nil { // handle error}需要根据您使用的 Redis 客户端调整详细信息。只要应用程序使用相同的类型设置和获取给定键的值,这种方法就可以避免重复并且是类型安全的。