999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于C#語(yǔ)言運(yùn)用Redis 實(shí)現(xiàn)秒殺的設(shè)計(jì)與實(shí)現(xiàn)

2021-09-10 14:46:14張?jiān)骑w
魅力中國(guó) 2021年26期
關(guān)鍵詞:數(shù)據(jù)庫(kù)用戶

張?jiān)骑w

(天才在線(北京)科技有限公司,北京市 100094)

在互聯(lián)網(wǎng)高速發(fā)展的今天,網(wǎng)購(gòu)和搶票在我們生活中越來(lái)越常見(jiàn),尤其是近年來(lái)網(wǎng)絡(luò)直播帶貨如雨后春筍,遍布我們的周?chē)8鱾€(gè)平臺(tái)都會(huì)對(duì)應(yīng)出很多優(yōu)惠秒殺的活動(dòng)來(lái)吸引消費(fèi)者,在流量大量負(fù)載的情況下,輕松應(yīng)對(duì)秒殺等環(huán)節(jié)就顯得尤為重要。通過(guò)運(yùn)用Redis 實(shí)現(xiàn)秒殺的場(chǎng)景,能夠輕松應(yīng)對(duì)極高負(fù)載下的數(shù)據(jù)請(qǐng)求,以保證數(shù)據(jù)準(zhǔn)確的同時(shí),減輕服務(wù)器壓力,提升系統(tǒng)的工作效率。

一、Redis 簡(jiǎn)介

REmote DIctionary Server(Redis)是一個(gè)由 Salvatore Sanfilippo 寫(xiě)的 keyvalue 存儲(chǔ)系統(tǒng)。Redis 是一個(gè)開(kāi)源的使用 ANSI C 語(yǔ)言編寫(xiě)、遵守 BSD 協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存、分布式、可選持久性的鍵值對(duì)(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù),并提供多種語(yǔ)言的 API。

Redis 是一個(gè)速度非常快的非關(guān)系數(shù)據(jù)庫(kù)(non-relational database),它可以?xún)?chǔ)存鍵(key)與5 種不同類(lèi)型的值(value)之間的映射(mapping),可以將存儲(chǔ)在內(nèi)存的鍵值對(duì)數(shù)據(jù)持久化到硬盤(pán),可以使用復(fù)制特性來(lái)擴(kuò)展讀性能,還可以使用客戶端分片來(lái)擴(kuò)展寫(xiě)性能。

二、Redis 優(yōu)勢(shì)

性能極高;豐富的數(shù)據(jù)類(lèi)型-Redis 支持二進(jìn)制案例的 Strings,Lists,Hashes,Sets 及 Ordered Sets 數(shù)據(jù)類(lèi)型操作;原子–Redis的所有操作都是原子性的,意思就是要么成功執(zhí)行要么失敗完全不執(zhí)行。單個(gè)操作是原子性的。多個(gè)操作也支持事務(wù),即原子性,通過(guò)MULTI和EXEC 指令包起來(lái);豐富的特性–Redis 還支持 publish/subscribe,通知,key 過(guò)期等等特性。

三、C#簡(jiǎn)介

C#是可用于創(chuàng)建要運(yùn)行在>NETCLR 上的應(yīng)用程序的語(yǔ)言之一,它從C和C++語(yǔ)言演化而來(lái),是Microsoft 專(zhuān)門(mén)為使用.Net 平臺(tái)而創(chuàng)建的。是一個(gè)現(xiàn)代的,通用的,面向?qū)ο蟮木幊陶Z(yǔ)言。

四、C#特點(diǎn)

現(xiàn)代的,通用的編程語(yǔ)言,面對(duì)對(duì)象,面向組件,容易學(xué)習(xí),可以在多種計(jì)算機(jī)平臺(tái)上編譯,.Net 框架的一部分;快速地構(gòu)建一個(gè)應(yīng)用,設(shè)計(jì)美觀的用戶界面,構(gòu)建令人贊嘆的可視化程序,專(zhuān)注于解決你的實(shí)際問(wèn)題。

五、SQLServer 簡(jiǎn)介

SQLServer 是由美國(guó)Microsoft 公司研發(fā)出來(lái)的一種可擴(kuò)展,高性能的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng)(RDBMS)。主要功能就是同各種數(shù)據(jù)庫(kù)建立聯(lián)系。

六、SQLServer 特點(diǎn)

用戶界面圖形化,管理數(shù)據(jù)更加明朗清楚;工具非常豐富,可選擇性強(qiáng);集成WindowsNT,高性能設(shè)計(jì);伸縮性很好,可跨越多平臺(tái)使用;有強(qiáng)大的事務(wù)處理功能,確保數(shù)據(jù)的完整性。

七、總體設(shè)計(jì)

本系統(tǒng)一共分為商品模塊,秒殺模塊,消費(fèi)模塊三個(gè)模塊。由商家 進(jìn)行商品的上架和設(shè)置秒殺個(gè)數(shù),開(kāi)始時(shí)間等設(shè)置,消費(fèi)者在秒殺開(kāi)始后,進(jìn)行秒殺,秒殺成功的消費(fèi)者進(jìn)行支付,商品去庫(kù)存,秒殺失敗的消費(fèi)者給予失敗提示。

(一)設(shè)計(jì)思路

第一,數(shù)據(jù)寫(xiě)在內(nèi)存當(dāng)中,而不是硬盤(pán)當(dāng)中。在大數(shù)據(jù)并發(fā)的情況下,傳統(tǒng)模式中,如果頻繁請(qǐng)求數(shù)據(jù)庫(kù)實(shí)時(shí)獲取庫(kù)存,寫(xiě)入數(shù)據(jù)等操作會(huì)給服務(wù)器帶來(lái)很大的壓力,導(dǎo)致服務(wù)器宕機(jī)。通過(guò)Redis 將數(shù)據(jù)寫(xiě)入內(nèi)存,內(nèi)存的讀寫(xiě)速度比SSD 硬盤(pán)快不止10倍,比普通硬盤(pán)快百倍。因此,將數(shù)據(jù)先寫(xiě)入內(nèi)存,就能使系統(tǒng)運(yùn)算能力提升上千倍。設(shè)計(jì)思路如圖:

第二,進(jìn)行異步操作,而不是同步操作。同步操作在面對(duì)大并發(fā)時(shí),需要準(zhǔn)備大量的服務(wù)器來(lái)應(yīng)對(duì),但是秒殺場(chǎng)景屬于短時(shí)大并發(fā),有很明顯的波峰和波谷,應(yīng)對(duì)短時(shí)大并發(fā)購(gòu)買(mǎi)大量服務(wù)器在經(jīng)濟(jì)上不合算。另一個(gè),一條完整的程序請(qǐng)求鏈有時(shí)可能需要很長(zhǎng)時(shí)間,讓用戶一直等待,體驗(yàn)很差,異步操作可以在后臺(tái)持續(xù)運(yùn)行,用戶請(qǐng)求后直接返回。處理能力會(huì)有很大的提升。

第三,分布式處理。可以安排多臺(tái)服務(wù)器參與,把海量用戶的請(qǐng)求分散到各個(gè)服務(wù)器上,減少單個(gè)服務(wù)器壓力。

八、各模塊功能設(shè)計(jì)

(一)商品模塊

此模塊分為商家界面和用戶界面兩種。主要是實(shí)現(xiàn)商品的發(fā)布,上架,設(shè)置秒殺時(shí)間和秒殺數(shù)量,展示在用戶界面。

第一,商家界面。1.商品發(fā)布:該功能主要是商家進(jìn)行商品的發(fā)布上架,設(shè)置商品信息,圖片等介紹,設(shè)置是否開(kāi)啟秒殺,秒殺時(shí)間,秒殺數(shù)量等信息,保存后儲(chǔ)存到SqlServer 數(shù)據(jù)庫(kù)中。2.商品管理:該功能是將商家發(fā)布的商品進(jìn)行展示,商家可以管理自己發(fā)布的商品,進(jìn)行下架,刪除,修改,發(fā)物流等操作。3.查詢(xún)功能:商家可以輸入需要查找的商品關(guān)鍵字,模糊搜索查找到對(duì)應(yīng)的商品。還可以查看各個(gè)商品下那些人購(gòu)買(mǎi)過(guò)等詳情。

第二,用戶界面。1.用戶登錄:用戶輸入用戶名,密碼登錄系統(tǒng),系統(tǒng)會(huì)檢查用戶名,密碼是否存在,是否合法。2.商品查看:該功能主要是展示商家發(fā)布出來(lái)的商品列表,用戶可以點(diǎn)擊商品查看各個(gè)商品的詳細(xì)信息。3.查詢(xún)功能:用戶可以查詢(xún)自己購(gòu)買(mǎi)的商品的詳情,可以進(jìn)行退貨退款或者確認(rèn)收貨等操作,還可以看到物流等信息。

(二)秒殺模塊

對(duì)于秒殺的商品,頁(yè)面會(huì)有秒殺開(kāi)始倒計(jì)時(shí),秒殺開(kāi)始后,用戶在商品詳情頁(yè)面進(jìn)行秒殺操作,提交用戶信息和商品信息到后臺(tái),通過(guò)程序進(jìn)行秒殺實(shí)際操作。系統(tǒng)先根據(jù)商品id 獲取到商品可以秒殺的總數(shù)量,寫(xiě)入到Redis 緩存當(dāng)中,一個(gè)秒殺請(qǐng)求進(jìn)來(lái),加鎖,先判斷根據(jù)設(shè)置的Redis的Key,看是否能找到這個(gè)緩存的Value,如果找不到,則根據(jù)商品id 獲取已經(jīng)秒殺成功的數(shù)量+1 放入redis 緩存中,判斷當(dāng)前Key的Value和秒殺總數(shù)相比,如果當(dāng)前數(shù)量<=秒殺總數(shù),則放到異步中進(jìn)行數(shù)據(jù)交互,否則直接返回false 提示秒殺已沒(méi)庫(kù)存。異步采用的是RabbitMq 消息隊(duì)列,特點(diǎn)是先進(jìn)先出,一次只能執(zhí)行一條數(shù)據(jù),不會(huì)造成數(shù)據(jù)擁擠,完美的解決了并發(fā)。主要代碼如圖:

(三)消費(fèi)模塊

該模塊就是針對(duì)已秒殺成功的用戶,進(jìn)行支付的操作,調(diào)用喚起微信支付等操作進(jìn)行支付功能,不做過(guò)多描述。支付成功后,系統(tǒng)拿到成功返回值,提示用戶支付成功,商品變成待收貨狀態(tài),可以在待收貨中查看并可以進(jìn)行退貨等操作。提示商家該物品已完成支付,可以進(jìn)行發(fā)貨等操作。

九、數(shù)據(jù)存儲(chǔ)

數(shù)據(jù)的存儲(chǔ)至關(guān)重要,數(shù)據(jù)庫(kù)表設(shè)計(jì)的好壞直接影響系統(tǒng)運(yùn)行的速度。本系統(tǒng)用的是SqlServer 數(shù)據(jù)庫(kù)。1.商品主表:表字段主要有主鍵id(自增),商品名稱(chēng),商品內(nèi)容,發(fā)布用戶ID,是否秒殺,數(shù)量,創(chuàng)建時(shí)間,商品狀態(tài)。2.用戶主表:表字段主要有主鍵ID(自增),用戶名,密碼,用戶類(lèi)型,創(chuàng)建時(shí)間,用戶狀態(tài)。3.用戶購(gòu)買(mǎi)商品記錄表:表字段主要有主鍵ID(自增),商品ID,用戶ID,創(chuàng)建時(shí)間,狀態(tài)。4.物流表:表字段主要有主鍵ID(自增),用戶購(gòu)買(mǎi)記錄表ID,商品ID,用戶ID,物流信息,狀態(tài),創(chuàng)建時(shí)間。

十、結(jié)語(yǔ)

互聯(lián)網(wǎng)高速發(fā)展的今天,各種電商,自媒體等平臺(tái)勢(shì)頭越來(lái)越盛,大家隨時(shí)隨地都在享受網(wǎng)購(gòu)帶給人們的便利,各種秒殺活動(dòng)也越來(lái)越多,大數(shù)據(jù)高并發(fā)成了平臺(tái)不得不面對(duì)的山峰。本設(shè)計(jì)利用Redis 將數(shù)據(jù)寫(xiě)入內(nèi)存,大大提升了讀寫(xiě)速度,數(shù)據(jù)請(qǐng)求中80%都是讀的請(qǐng)求,利用Redis 讀寫(xiě)分離,把讀數(shù)據(jù)的速度提升上千倍,自然運(yùn)行速度提升,服務(wù)器壓力減小,使得同量級(jí)的服務(wù)器能承載更大數(shù)據(jù)量訪問(wèn),也使得服務(wù)器相對(duì)穩(wěn)定。在實(shí)際應(yīng)用中是非常推薦的。

猜你喜歡
數(shù)據(jù)庫(kù)用戶
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
關(guān)注用戶
關(guān)注用戶
數(shù)據(jù)庫(kù)
關(guān)注用戶
數(shù)據(jù)庫(kù)
數(shù)據(jù)庫(kù)
Camera360:拍出5億用戶
100萬(wàn)用戶
主站蜘蛛池模板: 高清免费毛片| 99久视频| 国产成人免费手机在线观看视频 | h网址在线观看| 国产亚洲高清视频| 中文字幕中文字字幕码一二区| 亚洲不卡网| 91精品免费久久久| 丝袜美女被出水视频一区| 国产成人精品18| 老司国产精品视频| 全裸无码专区| 999国产精品| 高清色本在线www| 日韩国产精品无码一区二区三区| 日韩精品亚洲一区中文字幕| 中文纯内无码H| 夜精品a一区二区三区| 国产偷国产偷在线高清| 在线免费a视频| 麻豆精品在线视频| 天天做天天爱天天爽综合区| 久久国产热| 国产精品成人免费视频99| 日韩一区二区在线电影| 免费a级毛片视频| 日本91在线| 国产 在线视频无码| 91精品国产91久无码网站| 免费人成视网站在线不卡| 国产情精品嫩草影院88av| 亚洲综合色婷婷| 国产欧美高清| 国产高潮流白浆视频| 精品少妇人妻av无码久久| 99精品视频九九精品| 国产农村精品一级毛片视频| 日韩免费视频播播| 亚洲天堂久久久| 免费看美女自慰的网站| 亚洲国产日韩在线成人蜜芽| 久久久久免费看成人影片| 欧洲高清无码在线| 久草视频福利在线观看| 日韩精品久久无码中文字幕色欲| 久久91精品牛牛| 欧美天天干| 精品国产福利在线| 99人妻碰碰碰久久久久禁片| 青青操国产| 亚洲成人网在线观看| 国产无人区一区二区三区| 国产一区成人| 久久综合九九亚洲一区| 久久精品这里只有国产中文精品| 中文字幕亚洲第一| 91偷拍一区| 欧美日韩久久综合| 91久久偷偷做嫩草影院| 国产成人久久综合一区| 久无码久无码av无码| 伊人色综合久久天天| 蜜桃臀无码内射一区二区三区| 久草美女视频| 久久精品视频亚洲| 日本尹人综合香蕉在线观看| 国产裸舞福利在线视频合集| 国产精品嫩草影院av| 国产呦视频免费视频在线观看 | 国产99久久亚洲综合精品西瓜tv| 国产亚洲精品在天天在线麻豆| 欧美曰批视频免费播放免费| 日本伊人色综合网| 97se亚洲综合在线天天| 国产精品香蕉在线| 美女内射视频WWW网站午夜 | 女人18毛片一级毛片在线 | 日韩a在线观看免费观看| 另类综合视频| 亚洲欧美另类久久久精品播放的| 最新日韩AV网址在线观看| 国产免费羞羞视频|