Как извлечь N случайных неповторяющихся элементов из SET в Redis?
Есть SET c 1000 id, надо выбрать 3 случайных и неповторяющихся.
Решение «в лоб» — 3 раза сделать SRANDMEMBER, но нет гарантии, что не будет повторов.
Можно — контролировать повторы на уровне клиента и крутить цикл SRANDMEMBER до тех пор, пока полученный набор не будет уникальным, но это тоже несколько коряво.
Сортировать по случайной величине (что-то в духе SORT… BY RAND LIMIT 3 INTO… ) Redis не умеет.
В результате SORT… INTO… результирующий список будет типа LIST и сделать несколько раз SPOP оттуда нельзя.