В документации Redis для ZADD указано, что операция выполняется O(log N).
Однако кто-нибудь знает, лучше ли ZADD, чем O(log N), когда вставленный элемент находится в начале или в конце порядка сортировки?
Например. для некоторых реализаций это может быть O (1).
В частности, в руководстве по redis указано, что:
Отсортированные наборы реализованы через двухпортовую структуру данных, содержащую как список пропуска, так и хэш-таблицу, поэтому каждый раз, когда мы добавляем элемент, Redis выполняет операцию O(log(N)) .
Кажется правдоподобным изменить список пропуска, чтобы он поддерживал O(k) вставки в начале и в конце, где k — максимальный уровень списка пропуска.