调查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
结构有点偏啊!怎么回事。。
追加说明:在特定情况下呈现偏向的可能性?