调查Redis的srandmember有多随机

这篇文章距离最后更新已经超过一年了。请注意。

Redis的set数据类型允许从成员中随机提取值。

我会随意选择四个成员。

$ redis-cli sadd daizi:sore makenai
$ redis-cli sadd daizi:sore nagedasanai
$ redis-cli sadd daizi:sore nigedasanai
$ redis-cli sadd daizi:sore sinzinuku

$ redis-cli smembers daizi:sore
1) "sinzinuku"
2) "nigedasanai"
3) "nagedasanai"
4) "makenai"

在进行10,000次试验后,显示出随机成员x的结果。

$ redis-server -v
Redis server version 2.4.15 (00000000:0)
$ for x in {1..10000}; do redis-cli srandmember daizi:sore; done | sort | uniq -c
4975 makenai
1697 nagedasanai
1681 nigedasanai
1647 sinzinuku

结构有点偏啊!怎么回事。。


追加说明:在特定情况下呈现偏向的可能性?

广告
将在 10 秒后关闭
bannerAds