Начал присматриваться к Redis. Красивое описание, даже репликация есть, она пока что не нужна, но кто знает. С первого взгляда то, что надо.
А надо обновлять базу на три десятка миллионов ключей. Обычные key-value. Средняя ожидаемая нагрузка - 30К GETSET в секунду. Желательно при этом не сожрать много оперативной памяти, есть на то причины. В случае сбоя допустимо потерять небольшую часть последних значений, но основная масса должна остаться, то есть должно идти относительно постоянное сохранение данных на диск.
90% значений этих ключей можно описать, как integer(4) или integer(8). А число 1234567, представленное в виде integer, явно занимает в памяти значительно меньше места, чем представленное в виде char.
И тут в документации обнаруживается: in Redis there are not «integer» types, любой integer там обычная строка. Попробовал позаполнять - на миллион пар ключ/значение уходит больше двухсот метров памяти. С такой математикой 30М записей будут стоить 6ГБ.
Поэтому советуюсь. Стоит ли ещё на что-то посмотреть, или надо просто не скупиться на память? И какие вообще есть мнения о Redis?