Лучшая Redis DataStructure для этого варианта использования - PullRequest
0 голосов
/ 21 июня 2019

У меня есть двумерный массив с 5000 строками и 2 миллионами столбцов, сохраненное значение - просто логическое значение 0 или 1. Какая структура данных Redis лучше всего подходит для хранения этого варианта использования в Redis?

Ответы [ 2 ]

3 голосов
/ 21 июня 2019

Простым подходом было бы сохранить массив в виде строки и использовать битовые команды для манипулирования им. Это должно привести к минимальному использованию памяти, и SETBIT и GETBIT оба равны O (1).

Если данные могут уместиться в пределах 512 МБ строки Redis, вы можете просто использовать одну строку. Размер, который вы указали, слишком велик, поэтому альтернативный подход - хранить каждую строку в виде отдельной строки.

0 голосов
/ 21 июня 2019

Вы можете создать 5000 баз данных в экземпляре Redis, а затем сохранить каждую строку с индексом столбцов со значением «1» вместо сохранения всех 2 миллионов столбцов. Таким образом, вы можете уменьшить размер каждой строки до полумиллиона. Затем во время десериализации вы можете программно построить начальное значение массива.

//example: row -0 - columns: 00101....1

save [2,4,...,1999999]  // considering zero based indexing
...