Кеширование для вопросов базы данных - PullRequest
0 голосов
/ 16 января 2011
  • Когда мы говорим, что кеширование подобно использованию memcahe или Redis, это кеширование 1: 1 между пользователем и кешем или мы можем кешировать 1 элемент и использовать его для всех пользователей? Некоторые элементы, такие как список друзей, будут уникальными для каждого пользователя 1: 1. Но если я хочу кэшировать автоматический полный список для поиска по городу, который может использоваться любым пользователем, будет ли он просто сохранять 1 список в кеше, используемом всеми пользователями одновременно, или ему нужно будет хранить 1 список на пользователя?

  • Возможно ли кеширование всего база данных, все поиски, все пользователи, все их фотографии и т. д. мемах или редис?

  • Итак, из приведенного выше примера: друг список будет очищен из кеша когда пользователь выходит из системы. Но что-то как городской авто полный будет оставаться в кеш 24-7-365, я прав?

1 Ответ

1 голос
/ 16 января 2011

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

Вы можете кэшировать все, что вам нужно, хотя очевидно, что для этого требуется совсем немного памяти, и если вы делаете это, возможно, стоит использовать redis или memcachedb в качестве основного хранилища данных вместо кеша.Возможно, вы захотите сделать что-то другое с фотографиями - вы можете сохранить их в виде больших двоичных объектов, но хранение их в файловой системе и сохранение пути / URL-адреса в базе данных, вероятно, более эффективно.сеансы пользователя - вместо этого у вас есть либо установленное время истечения для каждого ключа, либо время отслеживания с момента последнего обращения к ключу, либо срок действия при записи.

...