1.redis是用來(lái)干嘛的?
在羅甸等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專(zhuān)注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需求定制開(kāi)發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計(jì),網(wǎng)絡(luò)營(yíng)銷(xiāo)推廣,成都外貿(mào)網(wǎng)站建設(shè)公司,羅甸網(wǎng)站建設(shè)費(fèi)用合理。Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache and message broker. It supports data structures such as strings, hashes, lists, sets, sorted sets with range queries, bitmaps, hyperloglogs, geospatial indexes with radius queries and streams. Redis has built-in replication, Lua scripting, LRU eviction, transactions and different levels of on-disk persistence, and provides high availability via Redis Sentinel and automatic partitioning with Redis Cluster.
通過(guò)上面redis官網(wǎng)的說(shuō)明可以看出,redis是一個(gè)可以對(duì)內(nèi)存數(shù)據(jù)結(jié)構(gòu)進(jìn)行存儲(chǔ)的東西,它可以用作數(shù)據(jù)庫(kù)、緩存和消息代理。它支持?jǐn)?shù)據(jù)結(jié)構(gòu),如字符串,散列,列表,集合,帶有范圍查詢的排序集,位圖,超級(jí)日志,具有半徑查詢和流的地理空間索引。Redis具有內(nèi)置復(fù)制,Lua腳本,LRU驅(qū)逐,事務(wù)和不同級(jí)別的磁盤(pán)持久性,并通過(guò)Redis Sentinel提供高可用性并使用Redis Cluster自動(dòng)分區(qū)。
在項(xiàng)目中主要用來(lái)用作數(shù)據(jù)的緩存,將數(shù)據(jù)緩存在redis中,減輕對(duì)底層數(shù)據(jù)庫(kù)的訪問(wèn)壓力,獲得更高的并發(fā)和更快的請(qǐng)求響應(yīng)速度。
2.在項(xiàng)目中如何使用?
我們知道,項(xiàng)目中的數(shù)據(jù)一般情況下都是存在于數(shù)據(jù)庫(kù)當(dāng)中的,而且數(shù)據(jù)庫(kù)的并發(fā)性能不是特別高,如果同時(shí)接收到大量的請(qǐng)求,數(shù)據(jù)庫(kù)可能就會(huì)崩掉,而且sql查詢會(huì)消耗一定的時(shí)間,增加請(qǐng)求的響應(yīng)時(shí)間,所以不用緩存會(huì)出現(xiàn)系統(tǒng)無(wú)法支撐大量的并發(fā)情況,請(qǐng)求響應(yīng)時(shí)間會(huì)變長(zhǎng)等問(wèn)題。
如果我們?cè)诘谝淮卧L問(wèn)某個(gè)數(shù)據(jù)的時(shí)候,比如根據(jù)一個(gè)訂單id獲取訂單的詳細(xì)信息,將這條數(shù)據(jù)再返回的時(shí)候,也放到緩存里面去,那么下次就可以直接在緩存里面返回?cái)?shù)據(jù),不必去查詢數(shù)據(jù)庫(kù),這樣就可以減輕數(shù)據(jù)庫(kù)的訪問(wèn)壓力,而且緩存在內(nèi)存中,勢(shì)必要比直接訪問(wèn)數(shù)據(jù)庫(kù)的速度要快很多,這樣也就減小了請(qǐng)求的響應(yīng)時(shí)間,redis在項(xiàng)目中就主要使用來(lái)解決數(shù)據(jù)的緩存問(wèn)題。
3.為啥要使用緩存?
使用緩存的目的主要有兩個(gè):
(1)高性能
比如說(shuō)有一個(gè)很復(fù)雜的sql數(shù)據(jù)查詢,這個(gè)查詢要耗費(fèi)大量的時(shí)間,如果每次都直接取數(shù)據(jù)查詢,那必然會(huì)對(duì)請(qǐng)求響應(yīng)時(shí)間造成很大的影響,如果能在第一次查詢完畢之后,將其直接保存在緩存當(dāng)中,下次查詢的時(shí)候,直接在緩存中拿走現(xiàn)成的數(shù)據(jù),這樣就會(huì)大大縮短請(qǐng)求的響應(yīng)時(shí)間。
(2)高并發(fā)
我們知道數(shù)據(jù)庫(kù)能承受的并發(fā)是有限的,那么在流量高峰期(比如,搶購(gòu)、打折、秒殺等等),會(huì)有大量的請(qǐng)求進(jìn)入我們的系統(tǒng),比如查詢某個(gè)商品的詳情,如果我們沒(méi)有緩沖,那么給次查詢都要走數(shù)據(jù)庫(kù),假如我們的數(shù)據(jù)庫(kù)每秒只能接受2000個(gè)請(qǐng)求,結(jié)果一秒鐘進(jìn)來(lái)了5000個(gè)請(qǐng)求,那么數(shù)據(jù)庫(kù)就直接崩掉了,毫無(wú)高并發(fā)可言,而如果我們中間具有緩存服務(wù),那么在第一個(gè)用戶查詢商品詳情時(shí)(或者提前將放好)我們可以直接將商品的詳情信息數(shù)據(jù)放到緩存里面,這樣在后續(xù)用戶查詢時(shí)就可以直接走緩存,不走數(shù)據(jù)庫(kù),緩存是基于內(nèi)存的,它的訪問(wèn)速度快,并發(fā)高;因此就可以提供一個(gè)高并發(fā)的支持。
4.用了緩存會(huì)出現(xiàn)什么問(wèn)題?
主要常見(jiàn)的有下面三個(gè)問(wèn)題
1)緩存與數(shù)據(jù)庫(kù)雙寫(xiě)不一致
2)緩存雪崩
3)緩存穿透
4)緩存并發(fā)競(jìng)爭(zhēng)
Flink系列精華文章合集:
Flink入門(mén)
Flink DataSet&DataSteam API
Flink集群部署
Flink重啟策略
Flink分布式緩存
Flink重啟策略
Flink中的Time
Flink中的窗口
Flink的時(shí)間戳和水印
Flink廣播變量
Flink-Kafka-connetor
Flink-Table&SQL
Flink實(shí)戰(zhàn)項(xiàng)目-熱銷(xiāo)排行
Flink-Redis-Sink
?后面會(huì)繼續(xù)更新更多實(shí)戰(zhàn)案例...
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。