欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

PHP+mysql+redis一次性生成大量隨機數(shù),怎么保證重復率低、快速存儲?

傅智翔2年前20瀏覽0評論

看你要的隨機數(shù)有多大然后能接受多大的重復率吧

假設你要0到1億之間取隨機數(shù):

取1千個隨機數(shù),不做去重操作的重復率是多少大概可以通過數(shù)學建模分析出來,能接受的話大可直接用php內(nèi)置的隨機函數(shù)去生成就好;

取10萬個隨機數(shù),可以適當用redis做緩存,做下隨機做下去重處理;

取百萬千萬級的隨機數(shù),即使redis再快再大也不得不考慮下內(nèi)存的大小了,還有時間空間的復雜度的計算了,可以適當用點“偽隨機”策略了,如分片處理,假設取1千萬個隨機數(shù),先從0到1千萬的分片中取1百萬個隨機數(shù),用redis做部分緩存去重處理,處理完成后,清理redis的緩存轉(zhuǎn)入下一個分片處理,以此類推直到取完。

以上就是大概策略,另外一個快速存取的要求就是盡可能批量處理,比如無論如何先生成三五千個隨機數(shù)作為一批,然后去重(redis),然后插入MySQL中這樣。