Как извлечь N случайных неповторяющихся элементов из SET в Redis?
Элегантный и быстроработающий, но не самый простой — сделать ветку redis на github, реализовать SRANDMEMBERS, который будет в качестве параметра получать количество возвращаемых результатов, после чего использовать и предложить включить в основную ветку.
Сейчас функция dictGetRandomKey используется в следующих случаях: при экспайре, при получении случайного ключа из базы, при проверке можно ли свопить элемент и при получении случайного элемента множества.
Или же в лоб. SPOP при большой нагрузке — нужно настраивать чтобы redis не начал постоянно пересохранять данные на винт из-за постоянно изменяющихся данных, и ИМХО дополнительный риск их потери.
3 раза SPOP потом 3 раза добавить