Как сочетать базу данных SQL и базу данных SQL?Хранилище ключей и значений (т. е.Редис)

StackOverflow https://stackoverflow.com/questions/2204694

  •  18-09-2019
  •  | 
  •  

Вопрос

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

  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')
  • сам присоединяется, т.е.ВСЕ теги для каждого объекта ГДЕ tag='a' (sql group_concat())
  • много внешних соединений, т.е.ВНЕШНЕЕ СОЕДИНЕНИЕ рейтинг ON o.id = рейтинг.obj_id
  • и каналы, которые кажутся сильной стороной REDIS.

Как успешно сочетать базы данных «ключ-значение» и SQL?

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

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

Это было полезно?

Решение

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

Другие советы

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

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

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

Лично я бы поостерегся смешивать СУБД с решением, отличным от СУБД, поскольку это, вероятно, создаст проблемы при столкновении двух разных парадигм.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top