Как вы смешиваете SQL DB против хранилища Key-Value (т.е. Redis) - PullRequest
3 голосов
/ 05 февраля 2010

Я проверяю свой код и понимаю, что провожу огромное количество времени

  1. получение строк из базы данных,
  2. форматирование в формате XML,
  3. AJAX GET для браузера, а затем
  4. преобразование обратно в хешированный объект javascript в качестве моего локального хранилища данных.

При обновлениях я должен полностью изменить процесс (кроме использования POST вместо XML.)

Только начав смотреть на Redis, я думаю, что смогу сэкономить огромное количество времени, храня объекты в хранилище значений ключей на сервере и просто используя JSON для передачи непосредственно клиенту JS. Но мой слабый разум не может предвидеть, что я оставляю, оставляя базу данных SQL (т.е. я боюсь отказаться от запросов GROUP BY / HAVING)

Для моих данных у меня есть:

  • многие-многие отношения, то есть obj-теги, obj-группы и т. Д.
  • запрашивать объекты с помощью комбинации таких элементов, т. Е. Тег WHERE IN ('a', 'b', 'c') И группа в ('x', 'y')
  • self-join, т. Е. ВСЕ теги для каждого объекта. WHERE tag = 'a' (sql group_concat ())
  • много внешних объединений, т.е. рейтинг OUTER JOIN включен o.id = rating.obj_id
  • и каналы, которые кажутся сильной стороной в REDIS

Как вы успешно смешиваете ключи-значения и базы данных SQL?

Например, целесообразно объединить большой список obj.Ids из набора REDIS с данными SQL, используя запрос SQL RANGE (т. Е. WHERE obj.id IN (1,4,6,7,8,34,876,9879) , 567,345, ...) или наоборот?

идеи / предложения приветствуются.

Ответы [ 3 ]

4 голосов
/ 09 февраля 2010

Возможно, вы захотите взглянуть на MongoDB . Он работает с объектами в стиле JSON и поставляется с SQL, как индексация и запросы. Redis больше подходит для хранения структур данных, таких как списки и наборы, когда вам нужен простой поиск вместо сложного запроса.

2 голосов
/ 08 февраля 2010

Теперь, когда реальная проблема более определена (т. Е. Вы тратите много времени на написание кода повторяющегося преобразования для перехода от одного слоя / представления к следующему), возможно, вы могли бы подумать о написании (или поиске в Google) чего-то, что автоматизирует это, возможно

Googles возвращает множество результатов для "преобразования таблицы в XML" (и наоборот), это поможет? Будет ли что-то лучше переходить непосредственно из таблицы в пары ключ / значение? Вы пытались решить эту проблему в обобщенном виде?

0 голосов
/ 05 февраля 2010

Когда вы говорите: «Я провожу огромное количество времени», вы имеете в виду, что это много времени на разработку, или вы имеете в виду вычислительное время?

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

...