Есть ли простой способ превратить таблицу MySQL в эквивалент Redis? - PullRequest
7 голосов
/ 12 апреля 2011

Есть ли простой способ превратить таблицу mysql в эквивалент redis?

У меня есть таблица myisam в MySQL, которая в основном используется как хранилище значений ключей, которое я хочу "переместить" в Redisтак что это будет супер быстро.Есть ли простой способ сделать это?

Спасибо.

Ответы [ 3 ]

8 голосов
/ 28 апреля 2011

Самый простой способ - получить дамп таблицы mysql и проанализировать соответствующие записи данных в командах redis.

Например, дамп данных будет производить что-то вроде следующего:

CREATE TABLE carousel(
  id int(11),
  path varchar(200),
  title varchar(200),
  comments varchar(200)
);

INSERT INTO carousel VALUES (3,'7.jpg','Inspirar','inspiration');
INSERT INTO carousel VALUES (4,'d.jpg','Pilotar','pilotar');
INSERT INTO carousel VALUES (5,'8.jpg','Sentir','sentir');
INSERT INTO carousel VALUES (6,'6.jpg','Volar','volar');

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

Для каждой таблицы вам нужно создать ключ, который будет содержать идентификаторы, давайте назовем их idx: $ table. Используя наш пример, мы создали бы idx: carousel.

Когда мы анализируем файл, мы извлекаем идентификаторы из первого столбца значений (в данном случае) и сохраняем их в idx: carousel. Также мы будем хранить каждую вставку в виде хэша. Для этого мы назовем ключевую карусель: $ id и используем команду hmset. Первая INSERT в примере будет храниться так:

hmset carousel: 3 path '7.jpg' title 'Inspirar' комментирует 'вдохновение'

Возможно, это звучит сложнее, чем есть на самом деле, но это довольно просто. Если вы думаете, что это слишком сложно, я готов написать один для вас.

Надеюсь, это поможет.

0 голосов
/ 30 октября 2015

Создайте списки Redis для каждого столбца и поместите все данные каждого столбца в этот список.и делать хэши для хранения списков каждой таблицы.например, таблица, содержащая столбцы email, id, имя пользователя, фамилия, может быть сохранена в redis путем создания списков адресов электронной почты, id, имени пользователя и фамилии, а также хешей, которые будут содержать адрес электронной почты, идентификатор, имя пользователя.

0 голосов
/ 13 апреля 2011

Я не знаю ни одной утилиты, которая будет выполнять такую ​​функцию автоматически, вам, вероятно, придется написать ее самостоятельно. Вы можете получить клиентскую библиотеку для вашего предпочтительного языка на http://redis.io/clients.

Это звучит как довольно простая задача, но легкость будет полностью зависеть от вашего комфорта и опыта работы с языком, на котором вы ее пишете.

...