redis能做哪些功能 在高并發(fā)的情況下,session存redis和session存mongodb差異大么?
在高并發(fā)的情況下,session存redis和session存mongodb差異大么?我不同意你的觀點(diǎn)。Redis和mango屬于NoSQL。兩者都可以用作緩存,也可以用作數(shù)據(jù)庫。1. mongodb
在高并發(fā)的情況下,session存redis和session存mongodb差異大么?
我不同意你的觀點(diǎn)。Redis和mango屬于NoSQL。兩者都可以用作緩存,也可以用作數(shù)據(jù)庫。
1. mongodb的文檔模型自由靈活,可以讓您在開發(fā)過程中更加順暢。Mongodb能夠處理數(shù)據(jù)量大、并發(fā)性高、事務(wù)性弱的Internet應(yīng)用。Mongodb內(nèi)置的水平擴(kuò)展機(jī)制提供了從100萬到10億的數(shù)據(jù)處理能力。
2. Redis是單進(jìn)程單線程模式,通過隊(duì)列模式將并發(fā)訪問改為串行訪問。Redis本身沒有鎖的概念,也沒有多個(gè)客戶端連接的競爭。但是,當(dāng)jedis客戶端并發(fā)訪問redis時(shí),會(huì)出現(xiàn)連接超時(shí)、數(shù)據(jù)轉(zhuǎn)換錯(cuò)誤、阻塞、客戶端關(guān)閉連接等問題。另外,會(huì)話的主題隨著技術(shù)的發(fā)展和分布式web應(yīng)用的普及,通過會(huì)話管理用戶登錄狀態(tài)的成本也越來越高。因此,它逐漸發(fā)展成為一種驗(yàn)證登錄狀態(tài)的令牌方法。然后,該令牌用于檢索redis中緩存的用戶信息。隨著JWT的出現(xiàn),對驗(yàn)證方法進(jìn)行了改進(jìn),使其更加簡單方便。它不需要通過redis緩存,而是直接根據(jù)令牌取出保存的用戶信息,檢查令牌的可用性。單點(diǎn)登錄更容易。
JWT通常包含兩個(gè)令牌:訪問令牌和刷新令牌。當(dāng)用戶通過登錄等方式成功驗(yàn)證身份時(shí),服務(wù)器會(huì)生成一個(gè)訪問令牌和一個(gè)刷新令牌,并返回前端存儲(chǔ)。兩個(gè)令牌的過期時(shí)間都將在服務(wù)器上設(shè)置,但訪問令牌的過期時(shí)間較短,而刷新令牌的過期時(shí)間較長。當(dāng)當(dāng)前端向服務(wù)器發(fā)送請求時(shí),訪問令牌將與請求一起發(fā)送到服務(wù)器,以驗(yàn)證請求者的身份。當(dāng)服務(wù)器發(fā)現(xiàn)訪問令牌已過期時(shí),它將返回失敗信息。此時(shí),前端需要使用refresh token從服務(wù)器申請新的訪問令牌。如果刷新令牌沒有問題,服務(wù)器將生成一個(gè)新的訪問令牌。如果刷新令牌已過期,則需要要求用戶再次登錄以驗(yàn)證其身份。
總之,JWT擴(kuò)展是通過使用過期時(shí)間較長的刷新令牌重新申請新的訪問令牌來實(shí)現(xiàn)的。當(dāng)刷新令牌也已過期時(shí),不可能延長時(shí)間。
Jwt的token如何像session一樣去延長時(shí)間?
絕地武士和雷森有什么區(qū)別?
jedis和redisson都用Java封裝redis操作。Jedis簡單地封裝了redis的API庫,可以看作redis客戶機(jī)。它的方法與redis命令非常相似。redison不僅封裝了redis,而且封裝了對更多數(shù)據(jù)結(jié)構(gòu)、鎖等功能的支持,比jedis更大。但絕地武士比雷迪森更具獨(dú)創(chuàng)性和靈活性。
Redis官方推薦十多種Java語言封裝框架(Redis官網(wǎng)),主要是jedis和redisson。
[jedis
jedis是一個(gè)用Java實(shí)現(xiàn)的redis客戶端。它的API提供了與redis本地命令類似的全面支持。與其他redis封裝框架相比,它更為原生。
它主要使用滑閥