As per antirez‘s feature request here, I implemented the following feature:
Added parameter to SPOP:
- spopCommand() now runs spopWithCountCommand() in case the param is found.
- Added intsetRandomMembers() to Intset: Copies N random members from the set into inputted ‘values’ array. Uses either the Knuth or Floyd sample algos depending on ratio count/size.
- Added setTypeRandomElements() to SET type: Returns a number of random elements from a non empty set. This is a version of setTypeRandomElement() that is modified in order to return multiple entries, using dictGetRandomKeys() and intsetRandomMembers().
- Added tests for SPOP with : unit/type/set, unit/scripting, integration/aof
More details can be found here.
Update, 2014-12-18: merged into all Redis branches.
Updated, 2016-05-06: officially a part of Redis 3.0.2, with various parts rewritten by antirez for better performance. More info here: Redis 3.2.0 is out!