Redis онлайн изменения структуры данных от набора до Zset - PullRequest
0 голосов
/ 03 сентября 2018

Скажем, у нас есть 500 ГБ онлайн-данных, которые все были сохранены в redis, как установлено почти с 10 ^ 8 клавишами. К сожалению, заданная структура данных больше не работает для системы, и мы хотим перенести все наборы в zsets с одинаковыми начальными значениями (например, отметка времени).

Я обнаружил, что мы можем использовать команду zinterscore new_zset 1 orig_set weights timestamp для выполнения миграции. Предполагает ли это, что нам нужно временно увеличить объем памяти до 1,0 ~ 1,5 ТБ для вышеуказанного преобразования? Но сколько времени это займет? Кто-нибудь сталкивался с такой же ситуацией (изменение структуры данных в сети)? Или принципиально, я должен сделать это? Любое предложение будет оценено.

1 Ответ

0 голосов
/ 03 сентября 2018

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

Вместо этого вы должны использовать команду SSCAN для итерации SET и команду ZADD для помещения элементов в SORTED SET .

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