寫在開頭
大家好,這裏是lionLoveVue,基礎知識決定了編程思維,學如逆水行舟,不進則退。金三銀四,爲了面試也還在慢慢積累知識,Github上面可以直接查看所有前端知識點梳理,github傳送門,覺得不錯,點個Star★,好運連連,Offer終究鼠於你,持續更新中。另外,也可以關注微信公衆號:小獅子前端Vue,源碼以及資料今後都會放在裏面。
Redis基礎
cookie 和 session 引入
這裏就要扯到 cookie
和 session
的相關知識點了,劃重點啦!
服務端的程序如何去識別客戶端的狀態,大家知道,http是無狀態的,推薦閱讀:如何學好前端,白嫖知識
比如現在有個用戶A,它訪問了服務器程序,那服務器程序如何知道下一次再訪問的時候還是A呢?
因此,對於這一塊就要用到非常重要的概念,session
,當然,這個session
可不是瀏覽器的,而是服務器的,它是用來存儲用戶的信息的。
那麼,服務器的 session
是如何保持在客戶端呢?
這個時候呢,又要引出另一個非常重要的概念,瀏覽器中的 cookie
。
綜上所述,cookie
和 session
的關係是:服務端用 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)等類型。
安裝教程
在 koa
的 bash
界面,執行如下命令,完成 koa
與 redis
的連接
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
謝謝您的支持!✿✿ヽ(°▽°)ノ✿
學如逆水行舟,不進則退