Кодировать значение структуры в байт [], используя gob , json или аналогичный пакет кодирования.Сохраните байт [] в 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 someType
if err := set(c, key, v); err != nil {
// handle error
}
и вот так, чтобы получить значение.Обратите внимание, что указатель на значение передается на get
.
var v someType
if err := get(c, key, &v); err != nil {
// handle error
}
Детали необходимо будет корректировать в зависимости от используемого клиента Redis.
Этот подход позволяет избежать повторения иявляется типобезопасным, если приложение устанавливает и получает значения для данного ключа, используя тот же тип.