亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于C#語言運(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)鍵詞:秒殺用戶界面內(nèi)存

        張?jiān)骑w

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

        在互聯(lián)網(wǎng)高速發(fā)展的今天,網(wǎng)購(gòu)和搶票在我們生活中越來越常見,尤其是近年來網(wǎng)絡(luò)直播帶貨如雨后春筍,遍布我們的周圍。各個(gè)平臺(tái)都會(huì)對(duì)應(yīng)出很多優(yōu)惠秒殺的活動(dòng)來吸引消費(fèi)者,在流量大量負(fù)載的情況下,輕松應(yīng)對(duì)秒殺等環(huán)節(jié)就顯得尤為重要。通過運(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 寫的 keyvalue 存儲(chǔ)系統(tǒng)。Redis 是一個(gè)開源的使用 ANSI C 語言編寫、遵守 BSD 協(xié)議、支持網(wǎng)絡(luò)、可基于內(nèi)存、分布式、可選持久性的鍵值對(duì)(Key-Value)存儲(chǔ)數(shù)據(jù)庫(kù),并提供多種語言的 API。

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

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

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

        三、C#簡(jiǎn)介

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

        四、C#特點(diǎn)

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

        五、SQLServer 簡(jiǎn)介

        SQLServer 是由美國(guó)Microsoft 公司研發(fā)出來的一種可擴(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ù),開始時(shí)間等設(shè)置,消費(fèi)者在秒殺開始后,進(jìn)行秒殺,秒殺成功的消費(fèi)者進(jìn)行支付,商品去庫(kù)存,秒殺失敗的消費(fèi)者給予失敗提示。

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

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

        第二,進(jìn)行異步操作,而不是同步操作。同步操作在面對(duì)大并發(fā)時(shí),需要準(zhǔn)備大量的服務(wù)器來應(yīng)對(duì),但是秒殺場(chǎng)景屬于短時(shí)大并發(fā),有很明顯的波峰和波谷,應(yīng)對(duì)短時(shí)大并發(fā)購(gòu)買大量服務(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è)置是否開啟秒殺,秒殺時(shí)間,秒殺數(shù)量等信息,保存后儲(chǔ)存到SqlServer 數(shù)據(jù)庫(kù)中。2.商品管理:該功能是將商家發(fā)布的商品進(jìn)行展示,商家可以管理自己發(fā)布的商品,進(jìn)行下架,刪除,修改,發(fā)物流等操作。3.查詢功能:商家可以輸入需要查找的商品關(guān)鍵字,模糊搜索查找到對(duì)應(yīng)的商品。還可以查看各個(gè)商品下那些人購(gòu)買過等詳情。

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

        (二)秒殺模塊

        對(duì)于秒殺的商品,頁(yè)面會(huì)有秒殺開始倒計(jì)時(shí),秒殺開始后,用戶在商品詳情頁(yè)面進(jìn)行秒殺操作,提交用戶信息和商品信息到后臺(tái),通過程序進(jìn)行秒殺實(shí)際操作。系統(tǒng)先根據(jù)商品id 獲取到商品可以秒殺的總數(shù)量,寫入到Redis 緩存當(dāng)中,一個(gè)秒殺請(qǐng)求進(jìn)來,加鎖,先判斷根據(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 提示秒殺已沒庫(kù)存。異步采用的是RabbitMq 消息隊(duì)列,特點(diǎn)是先進(jìn)先出,一次只能執(zhí)行一條數(shù)據(jù),不會(huì)造成數(shù)據(jù)擁擠,完美的解決了并發(fā)。主要代碼如圖:

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

        該模塊就是針對(duì)已秒殺成功的用戶,進(jìn)行支付的操作,調(diào)用喚起微信支付等操作進(jìn)行支付功能,不做過多描述。支付成功后,系統(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(自增),商品名稱,商品內(nèi)容,發(fā)布用戶ID,是否秒殺,數(shù)量,創(chuàng)建時(shí)間,商品狀態(tài)。2.用戶主表:表字段主要有主鍵ID(自增),用戶名,密碼,用戶類型,創(chuàng)建時(shí)間,用戶狀態(tài)。3.用戶購(gòu)買商品記錄表:表字段主要有主鍵ID(自增),商品ID,用戶ID,創(chuàng)建時(shí)間,狀態(tài)。4.物流表:表字段主要有主鍵ID(自增),用戶購(gòu)買記錄表ID,商品ID,用戶ID,物流信息,狀態(tài),創(chuàng)建時(shí)間。

        十、結(jié)語

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

        猜你喜歡
        秒殺用戶界面內(nèi)存
        自然用戶界面在智能家居系統(tǒng)中的應(yīng)用路徑創(chuàng)新研究:生成式人工智能技術(shù)的調(diào)節(jié)作用
        包裝工程(2023年16期)2023-08-25 11:40:58
        基于CiteSpace的國(guó)外用戶界面體驗(yàn)圖譜量化分析
        “春夏秋冬”的內(nèi)存
        UI用戶界面色彩設(shè)計(jì)研究
        流行色(2017年12期)2017-10-26 03:08:44
        文人吐槽,秒殺段子手
        秒殺
        基于B/S的跨平臺(tái)用戶界面可配置算法研究
        秒殺一切的街頭爆笑圖
        基于內(nèi)存的地理信息訪問技術(shù)
        上網(wǎng)本為什么只有1GB?
        欧美国产一区二区三区激情无套| 99久久婷婷国产精品网| 精品一二三四区中文字幕 | 国产午夜精品一区二区三区嫩草 | 久久人人爽爽爽人久久久| 精品香蕉久久久午夜福利| 在线偷窥制服另类| 最新天堂一区二区三区| 伊人精品久久久久中文字幕| 国产麻无矿码直接观看| 麻豆国产AV网站| 亚洲丰满熟女一区二亚洲亚洲 | 中国内射xxxx6981少妇| 美女一级毛片免费观看97| 国产性感主播一区二区| 国产女人精品视频国产灰线| 无码人妻精一区二区三区| 日本a级大片免费观看| 亚洲av一二三四五区在线| 亚洲av永久无码精品漫画| 乱码午夜-极国产极内射| 人妻中文字幕av有码在线| 亚洲美女毛多水多免费视频| 成人欧美一区二区三区| 国产农村妇女毛片精品久久久| 黄色国产一区在线观看| 99噜噜噜在线播放| 中文人妻av久久人妻18| 国产成人香蕉久久久久| 亚洲精品国产亚洲av| 亚洲综合av一区二区三区| 在线欧美不卡| 中文字幕人妻久久一区二区三区| 人妻少妇被粗大爽.9797pw| 久久99精品久久久久久hb无码| 色偷偷亚洲第一综合网| 狼人伊人影院在线观看国产| 国产成人亚洲精品青草天美| 波霸影院一区二区| 美女被强吻并脱下胸罩内裤视频| 久久精品国产只有精品96|