使用缓冲区,在get、set动作时做一些事情
func (r *RedisClient) GetStructValue(key string, value interface{}) error {
codec := &cache.Codec{
Redis: r.Client,
Marshal: func(v interface{}) ([]byte, error) {
return msgpack.Marshal(v)
},
Unmarshal: func(b []byte, v interface{}) error {
return msgpack.Unmarshal(b, v)
},
}
if err := codec.Get(key, value); err != nil {
logrus.Warnf("get redis cache error, %s, %v", key, err)
return err
}
return nil
}