成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

千萬級(jí)用戶ms級(jí)抽獎(jiǎng)N名設(shè)計(jì)方案

數(shù)據(jù)庫(kù) MySQL
在用戶關(guān)注直播間在寫入MySQL關(guān)注用戶表時(shí),再往Redis增加一個(gè)userlist Set,存儲(chǔ)用戶編號(hào)。可保證用戶全局唯一(避免用戶反復(fù)的取消和關(guān)注影響數(shù)據(jù)記錄),且數(shù)據(jù)基于Hash亂序存儲(chǔ),取出的直接就是隨機(jī)值。

1 需求

大促節(jié)零點(diǎn)時(shí),從關(guān)注的用戶中抽出N個(gè)人進(jìn)行禮品發(fā)放,預(yù)計(jì)全網(wǎng)超過千萬用戶參加關(guān)注抽獎(jiǎng)活動(dòng),要求:

  • 同一用戶不能重復(fù)參與
  • 同一用戶不允許二次中獎(jiǎng)

2 設(shè)計(jì)方案

2.1 最原始

rand(),對(duì)每行隨機(jī)產(chǎn)生一個(gè)隨機(jī)數(shù)

select * from 關(guān)注用戶表 order by rand() desc limit,0,100

預(yù)計(jì)千萬級(jí)別的對(duì)技術(shù)倒排大概率涼涼。

2.2 N次隨機(jī)選擇SQL

效率可以,不過要先后執(zhí)行兩條SQL,并發(fā)時(shí)有原子性問題,且RAND函數(shù)不能保證不重復(fù)中獎(jiǎng)。

offset = SELECT FLOOR(RAND() * COUNT(*)) AS offset from 關(guān)注用戶表
select * from 關(guān)注用戶表 limit offset,1

2.3 Redis Set隨機(jī)彈出

step1:在用戶關(guān)注直播間在寫入MySQL關(guān)注用戶表時(shí),再往Redis增加一個(gè)userlist Set,存儲(chǔ)用戶編號(hào)。可保證用戶全局唯一(避免用戶反復(fù)的取消和關(guān)注影響數(shù)據(jù)記錄),且數(shù)據(jù)基于Hash亂序存儲(chǔ),取出的直接就是隨機(jī)值。

sadd userlist xxxid

預(yù)計(jì)用戶編號(hào)long類型,100萬50MB, 1000萬用戶也僅500MB。

step2:抽獎(jiǎng)時(shí),直接使用spop,彈出隨機(jī)的100個(gè)用戶編號(hào),該操作是原子性,先彈出再返回,在加上Redist命令隊(duì)列單線程,不存在并發(fā)問題,杜絕重復(fù)中獎(jiǎng)。

step3:執(zhí)行1次select in,提取數(shù)據(jù),因?yàn)槎际峭ㄟ^主鍵提取,效率快也不存在in索引失效問題,但要注意in的數(shù)量上限是1000個(gè),超過1000個(gè)備選項(xiàng)要拆成多個(gè)in。

 2.4 純Redis

內(nèi)存充足不差錢時(shí)可用。因?yàn)槌楠?jiǎng)結(jié)果頁(yè)面通常只顯示用戶昵稱,還可使用Rdis提速,用內(nèi)存換時(shí)間。

sadd userlist '123456:ikun'
sadd userlist '123456:akun'
sadd userlist '123456:bkun'

估算千萬用戶需3G內(nèi)存,spop提取速度完全可控制在3ms內(nèi)完成,且不重復(fù)。

Redis不怕Key多,只是怕大Key。測(cè)試結(jié)果:

圖片

圖片

1000次pop執(zhí)行時(shí)間2565,即每次 pop 只需 2.5ms。

責(zé)任編輯:武曉燕 來源: JavaEdge
相關(guān)推薦

2019-12-09 09:52:38

設(shè)計(jì)軟件數(shù)據(jù)庫(kù)

2017-10-24 10:15:05

CDN突發(fā)池系統(tǒng)架構(gòu)

2022-02-28 10:11:22

查詢數(shù)據(jù)SQL

2012-08-21 09:42:24

設(shè)計(jì)架構(gòu)設(shè)計(jì)原則

2018-04-09 13:40:55

防火墻支付平臺(tái)方案

2012-08-09 09:52:41

移動(dòng)APP推廣沙龍

2011-05-10 14:53:27

專業(yè)顯卡評(píng)測(cè)

2025-02-03 00:00:20

2025-04-28 07:46:03

2019-08-01 08:36:51

緩存系統(tǒng)并發(fā)

2022-05-18 10:07:29

EMQ車聯(lián)網(wǎng)MQTT

2009-07-17 13:35:41

微軟操作系統(tǒng)Windows 7升級(jí)方案

2011-11-09 11:05:38

惠普激光打印機(jī)

2022-02-22 10:29:24

分布式架構(gòu)高可用

2018-08-17 10:43:00

2010-09-08 16:17:37

SIP協(xié)議棧

2009-10-12 16:50:00

2012-07-11 10:49:34

鮑爾默Surface

2009-10-19 13:50:57

布線設(shè)計(jì)方案

2022-07-05 09:38:47

模型RBACABAC
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品成人品 | av国产精品| 国产精品久久久久久久久久三级 | 我想看一级黄色毛片 | h在线免费观看 | 成人在线一区二区 | 欧美久久精品一级黑人c片 91免费在线视频 | 国产精品 亚洲一区 | 成人福利电影 | 精品成人免费一区二区在线播放 | 一区二区久久 | 亚洲欧美在线一区 | 精品网站999www | 国产一区二区三区四区 | 中文字幕亚洲一区二区三区 | 伊人春色在线观看 | 欧美成人精品一区二区男人看 | 国产99视频精品免费视频7 | 国产91丝袜在线播放 | a看片| 亚洲一区二区三区在线免费观看 | 天天弄 | 久久精品国产精品青草 | 免费成人高清在线视频 | 亚洲欧美视频一区 | 操久久| www.婷婷 | 国产色网站 | 韩日一区二区三区 | 日韩av高清 | 97精品超碰一区二区三区 | 黄视频免费观看 | 九九精品在线 | 久久99国产精一区二区三区 | 国产成人叼嘿视频在线观看 | 日韩欧美高清dvd碟片 | 国产视频二区 | 97精品一区二区 | 美日韩精品 | 中国美女一级黄色片 | 国产精品亚洲一区二区三区在线 |