@@ -151,6 +151,18 @@ trait SortedSetsApi extends ApiSubset {
151151 def zpopmin (key : Key , count : Long ): Result [Seq [(Value , Double )]] =
152152 execute(new Zpopmin (key, Opt (count)))
153153
154+ /** Executes [[http://redis.io/commands/zrandmember ZRANDMEMBER ]] */
155+ def zrandmember (key : Key ): Result [Opt [Value ]] =
156+ execute(new Zrandmember (key))
157+
158+ /** Executes [[http://redis.io/commands/zrandmember ZRANDMEMBER ]] */
159+ def zrandmember (key : Key , count : Int , distinct : Boolean = true ): Result [Seq [Value ]] =
160+ execute(new ZrandmemberCount (key, if (distinct) count else - count))
161+
162+ /** Executes [[http://redis.io/commands/zrandmember ZRANDMEMBER ]] */
163+ def zrandmemberWithscores (key : Key , count : Int , distinct : Boolean = true ): Result [Seq [(Value , Double )]] =
164+ execute(new ZrandmemberWithscores (key, if (distinct) count else - count))
165+
154166 /** Executes [[http://redis.io/commands/zrange ZRANGE ]] */
155167 def zrange (key : Key , start : Long = 0 , stop : Long = - 1 ): Result [Seq [Value ]] =
156168 execute(new Zrange (key, start, stop))
@@ -384,6 +396,21 @@ trait SortedSetsApi extends ApiSubset {
384396 val encoded : Encoded = encoder(" ZPOPMAX" ).key(key).optAdd(count).result
385397 }
386398
399+ private final class Zrandmember (key : Key )
400+ extends RedisOptDataCommand [Value ] with NodeCommand {
401+ val encoded : Encoded = encoder(" ZRANDMEMBER" ).key(key).result
402+ }
403+
404+ private final class ZrandmemberCount (key : Key , count : Int )
405+ extends RedisDataSeqCommand [Value ] with NodeCommand {
406+ val encoded : Encoded = encoder(" ZRANDMEMBER" ).key(key).add(count).result
407+ }
408+
409+ private final class ZrandmemberWithscores (key : Key , count : Int )
410+ extends AbstractValuesWithScoresCommand with NodeCommand {
411+ val encoded : Encoded = encoder(" ZRANDMEMBER" ).key(key).add(count).add(" WITHSCORES" ).result
412+ }
413+
387414 private final class Zrange (key : Key , start : Long , stop : Long )
388415 extends AbstractZrange [Value ](" ZRANGE" , multiBulkAsSeqOf[Value ])(key, start, stop, withscores = false )
389416
0 commit comments