Должен ли я хранить только идентификаторы в Redis, а затем запрашивать SQL, используя идентификаторы - PullRequest
3 голосов
/ 10 июля 2011

Если я хочу отобразить недавнее количество X последних сообщений \ комментариев на странице, я сохраняю список идентификаторов, используя LPUSH, а затем LTRIM, чтобы сохранить список определенного размера.

Могу ли я затем использовать идентификаторы, возвращенные из LRANGE, чтобы получить подробности сообщения \ комментариев от:

a) Redis, используя MGET, где я передаю:

Комментарий MGET.author, comment.1.content, comment.1.timestamp, comment.2.author и т. д.

Можно ли так хранить все данные комментариев в Redis?

b)База данных SQL, используя список, если идентификаторы в запросе

1 Ответ

3 голосов
/ 10 июля 2011

Если вы хотите хранить поля по отдельности, например, хеш будет казаться более подходящим, чем 5 ключей каждое, т. Е. Где "comment.1" - это ключ, с подразделами "author", "content"и т. д. Однако, если у вас нет причины просто хотеть идентификаторы, я бы соблазнился сохранить всю вещь как сериализованный кусок json или двоичного файла - тогда вы просто LRANGE и вы имеют данные - без суеты и минимальных поездок.

Чтобы уменьшить пропускную способность, я бы использовал что-то вроде protobuf-net для хранения (хотя я могу быть предвзятым), и если вам нужнобинарный безопасный клиент BookSleeve будет работать очень хорошо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...