Разверните redis на многих серверах - PullRequest
1 голос
/ 01 апреля 2011

Мое веб-приложение использует redis для основной базы данных. Это очень приятно в исполнении. В настоящее время моя база данных слишком велика, и я хочу добавить несколько новых серверов для хранения. Но я все еще застрял в решении, как распространять в стабильном и легко создавать резервные копии.

У всех есть идеи?

Большое спасибо!

Ответы [ 2 ]

2 голосов
/ 06 апреля 2011

Из того, что я понимаю, нет автоматического способа сделать это встроенным в сам Redis (и сложно реализовать общий способ, так как это зависит от того, что ваше приложение будет делать с этими данными), вы должны сделать это самостоятельно (или в драйвер, как драйвер ruby).

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

Драйвер ruby ​​просто пытается распределить ключи между серверами или берет индекс сервера из имени ключа, если отформатирован соответствующим образом (что-то вроде "{server_id} mykey" после быстрого взгляда на код)

[Изменить] Возможное решение: - https://github.com/gmr/mredis

2 голосов
/ 03 апреля 2011

Вы не упоминаете, какой язык вы используете.Если это Ruby, то драйвер имеет решение для шардинга на стороне клиента , которое решает множество проблем. antirez работает над кластерным решением для Redis, но оно все еще не завершено.

Ни шардинг на стороне клиента, ни кластер Redis не могут решить все проблемы.Если вам, например, нужно создавать объединения и пересечения наборов, вы не сможете этого сделать, если оба набора не окажутся в одном и том же осколке (я считаю, что кластер Redis будет иметь некоторые средства для обработки этого, но не автоматически).

Еще одно решение - Redis disktore, но, как и кластеризация, оно еще не закончено.Diskstore будет означать, что вы можете увеличить свой набор данных больше, чем RAM, и использовать репликацию для масштабирования операций чтения.

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