【Vue全家桶+SSR+Koa2全棧開發】(五) Redis基礎

寫在開頭

大家好,這裏是lionLoveVue,基礎知識決定了編程思維,學如逆水行舟,不進則退。金三銀四,爲了面試也還在慢慢積累知識,Github上面可以直接查看所有前端知識點梳理,github傳送門,覺得不錯,點個Star★,好運連連,Offer終究鼠於你,持續更新中。另外,也可以關注微信公衆號:小獅子前端Vue,源碼以及資料今後都會放在裏面。

Redis基礎


cookie 和 session 引入

這裏就要扯到 cookiesession的相關知識點了,劃重點啦!

服務端的程序如何去識別客戶端的狀態,大家知道,http是無狀態的,推薦閱讀:如何學好前端,白嫖知識

比如現在有個用戶A,它訪問了服務器程序,那服務器程序如何知道下一次再訪問的時候還是A呢?

因此,對於這一塊就要用到非常重要的概念,session,當然,這個session可不是瀏覽器的,而是服務器的,它是用來存儲用戶的信息的。

那麼,服務器的 session是如何保持在客戶端呢?

這個時候呢,又要引出另一個非常重要的概念,瀏覽器中的 cookie

綜上所述,cookiesession 的關係是:服務端用 session 來保存用戶的狀態,然後客戶端用 cookie 來保存 session ,服務器端把 session 種植到 cookie 中,然後下次訪問時,cookie 會攜帶着 session ,進而達到一個身份認證的效果

redis概念&安裝

上文我們知道了cookie 和 session 在瀏覽器和服務器端的作用,那麼與我們redis 有什麼關係呢?

想一想,既然是認證的功能,那我們服務端的session 應該存在哪呢,也許你會想着放入服務器端存儲,放入內存當中,這確實是一種方式,沒有問題,但當應用程序很大的時候,session 容量特別大的時候呢?例如某寶這樣的呢?此時內存肯定不夠用了,這個時候就需要一個容器來存儲大容量的 session 了,此時存儲數據庫 redis就發揮了它的作用了!

關於數據庫的話,上文也提到了mongodb,我們是不是也可以用這個呢?

這個的話,雖然也是一種方式,但我們要考慮讀寫性能問題,因爲 redis快速讀寫類型的數據庫,使用靈活方便,是 key-value 型的


爲了更加了解redis,這裏我就引用官方介紹了:

  • REmote DIctionary Server(Redis) 是一個由Salvatore Sanfilippo寫的key-value存儲系統。

  • Redis是一個開源的使用ANSI C語言編寫、遵守BSD協議、支持網絡、可基於內存亦可持久化的日誌型、Key-Value數據庫,並提供多種語言的API。

  • 它通常被稱爲數據結構服務器,因爲值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等類型。

安裝教程

參考:redis安裝教程

參考:windows下Redis的安裝和配置–圖文教程

koabash界面,執行如下命令,完成 koaredis 的連接

npm i koa-generic-session koa-redis
redis-server.exe redis.windows.conf

啓動 redis 服務

一、[9980] 21 Apr 02:57:05.611 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error

解決方法:在命令行中運行

redis-cli.exe
127.0.0.1:6379>shutdown

二、Redis (error) NOAUTH Authentication required.解決方法

127.0.0.1:6379>auth "123456"
127.0.0.1:6379>shutdown
not connected>exit

然後重新運行 redis-server.exe redis.windows.conf ,啓動成功!

參考:Redis啓動報錯:Creating Server TCP listening socket 127.0.0.1:6379: bind: No error

結尾


如若本文有瑕疵需修改的地方,請提出來,謝謝您的貢獻!

歡迎關注微信公衆號:小獅子前端Vue

謝謝您的支持!✿✿ヽ(°▽°)ノ✿

學如逆水行舟,不進則退
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章