Redis認知、安裝與操作
MongoDB:動態數據庫,如游戲中需要頻繁地保存人物的坐標
Oracle:收費,企業級
mac要安裝homebrew(包管理工具)
window安裝Redis程序運行教程
命令行Redis操作
啟動: redis-server 啟動Redis服務器
連接客戶端: redis-cli 操作Redis
port: 6379
設置或修改Reids: set name ‘js++’
獲取Redis: get name
獲取Redis所有key:keys *
刪除Redis key: del name
退出客戶端: exit
服務端項目安裝redis依賴
npm i redis -S --registry=https://registry.npm.taobao.org
Cookie、Session與Redis夯實基礎
http是無狀態的,使用cookie和session這種會話機制,就產生了有狀態的結果
session主要存儲用戶信息
響應頭中有Set-Cookie字段,瀏覽器看到后會自動將相應用戶信息存儲到cookie,下次用戶再請求該服務器(會帶上cookie),服務器就能知道用戶信息
- 后端配置了加密
redis的key名帶txclass.sess前綴(prefix),存的session的key名為
txclass.sessl......w
,鍵值為對象(含cookie、uid、username、nickname、gender)
Set-Cookie中,瀏覽器的cookie存儲鍵名為txclass.sid
(name),鍵值是redis的鍵名l......w
- 再次去請求時,響應頭里就沒有Set-Cookie了,但請求頭里仍然帶Cookie
session的存儲問題
- 系統會限制每個進程的最大可用內存 - > 啟動多個進程
- 進程之間數據隔離,無法相互訪問
session存儲到Redis
session的使用
- session數據量小
- session不考慮數據丟失的問題
- session訪問度很高,要求訪問快,性能高
什么情況不適合Redis
- 操作頻率不高的數據(除了慢一點,就沒必要占用內存)
- 數據無法承受丟失的結果(存在內存中,丟失風險變高,存在硬盤中一般不會丟失)
- 數據量大,內存無法承受
在Koa2項目中操作Redis
- koa-redis: Koa2操作redis依賴
- koa-generic-session: Koa2操作session
npm i koa-redis koa-generic-session –S