Re: Синхронизация кэша
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 13.09.23 20:17
Оценка: 1 (1)
Здравствуйте, corpse56, Вы писали:

C>Здравствуйте!


C>Задача стоит следующая. Есть порядка 50 толстых клиентов, которые работают с одной и той же базой. Клиенты тормозят из-за того, что каждый объект заново запрашивается из БД.

Нормально спроектированная база выдерживает сотни и тысячи запросов в секунду. Тем более если это одни и те же объекты, то они просто лежат в памяти сервера БД и не запрашиваются с диска.


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

Если вам нужно оповещать клиентов об изменении объектов — возьмите redis, не мучайте базу лишними запросами. А если вам лень этим заниматься, то просто сделайте индекс по дате последнего изменения и получайте из небольшого индекса идентификаторы изменившихся записей.

C>Может быть есть какой-то способ самому это реализовать? Я так понимаю здесь нужно будет веб-приложение, или всё же использовать TCP-протокол для таких задач?

C>Наверняка уже существует что-то для такой задачи типа Memcached но под виндоус
Может и есть, но вам он недоступен.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.