Подтвердить что ты не робот

Сохранение свойств объекта в redis

Позволяет сказать, что у меня есть объект (Пользователь), который состоит из нескольких свойств (ID, Имя, Фамилия, Возраст). Какой способ лучше сохранить этот объект в redis?

  • хранить каждое значение свойства в выделенном ключе, например user: {id}: id, user: {id}: имя, пользователь: {id}: имя_пользователя, пользователь: {id}: age
  • хранить весь объект пользователя как строку JSON в одном ключе, например user: {id}: json (значение ключа будет выглядеть примерно так: { "ID": 123, "Name": "Johny", "Surename": "Bravo", "Age": 22})
4b9b3361

Ответ 1

В соответствии с эти два источника, вероятно, являются оптимальным решением было бы использовать хэши из-за потребления памяти при использовании выделенных ключей и длинной строки в сценарии с JSON в качестве значения ключа.

Ответ 2

Из официального Redis

Использовать хэши, если возможно

Малые хэши кодируются в очень маленьком пространстве

Если в нем не много полей.

Каждый раз, когда хеш будет превышать количество элементов или размер элемента указанный он будет преобразован в реальную хеш-таблицу, а память сохранение будет потеряно.

Ответ 3

Из моих тестов с использованием хэша требуется гораздо меньшее пространство, но это единственная причина. Если у вас много данных, попробуйте использовать хэш. В противном случае вы также можете использовать JSON, так как он легко сериализуется и десериализуется на объекты, если вы этого хотите, и обрабатываете в целом.