Разве экземпляр Redis может работать только для 1 проекта? - PullRequest
1 голос
/ 11 июля 2010

Я использую Rails с redis.

С момента появления Redis я нашел такую ​​информацию:

запуск сервера redis:

redis-server

использовать клиент Redis:

> redis-cli
redis> set key value
OK
redis> get key
"value"

Из образца у меня есть вопрос:

Может ли экземпляр Redis работать только для 1 проекта? Вы можете видеть, что нет «базы данных», «коллекции» или подобных вещей. Если два разных проекта используют один и тот же redis, они могут изменить один и тот же ключ на недопустимое значение.

Итак, нужно ли создавать разные экземпляры с разными портами для разных проектов Rails?

Ответы [ 2 ]

9 голосов
/ 12 июля 2010

Имейте в виду, что у redis также есть базы данных (16 из них, если я правильно помню) - они просто не названы, они числа. Так, например, если вы используете redis-rb для подключения, вы получите следующий фрагмент:

$redis = Redis.new(:host => 'localhost', :port => 6379, :db => 5)

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

1 голос
/ 11 июля 2010

Если вы разделяете один экземпляр (или кластер) Redis между двумя или более приложениями, вам, вероятно, следует распределить их по именам, чтобы рационально распределить их между этими приложениями по причинам, которые вы наблюдали. Взгляните на гем redis-namespace , который предоставляет хороший интерфейс Ruby для этого.

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