У меня есть функция, которая возвращает пользователя. Я использую Горм для моей БД ORM:
func (dbs *DbService) GetUser(userId string) User {
var user = &User{}
dbs.db..Find(&user)
return user
}
Если я кеширую результат, то есть пользователя, это вызовет проблемы с выделением памяти, потому что я помещаю пользователя в кеш, который является ссылочным типом, так что это заставит переменную user жить вне области действия этой функции?
Обновление
Итак, учитывая приведенную выше функцию, я хочу обновить ее для кэширования, используя memcache (ниже не приведен фактический код для хранения моего пользователя, просто пример):
mc.Set(&memcache.Item{Key: "foo", Value: []byte("my value")})
Это кэш вне процесса. Я просто хочу знать, что если я сохраню своего пользователя в этом кэше, он не переживет мой вызов метода.