2 egg中使用redis
服務端複雜的資料庫查詢會嚴重降低訪問速度,我們需要將一些常用的介面資料進行儲存,使用者在獲取資料的時候,直接將資料從記憶體中讀取,不進行資料庫查詢,可以大大提高伺服器效能。儲存方式主要有檔案儲存和記憶體儲存,檔案儲存通過fs模組寫入讀取txt檔案,不多說;這裡使用redis記憶體儲存。
2.1 windows安裝,
2.2linux安裝
檢視系統是否安裝redis
yum info redis
如果沒有安裝,執行以下步驟
安裝epel庫
yum install epel-release -y
安裝redis
yum install redis -y 操作
啟動:systemctl start redis
重啟:systemctl restart redis
關閉:systemctl stop redis
設定開機啟動
systemctl enable redis
1、安裝依賴
npm i egg-redis -
s
2、config/plugin.js中引入外掛程式
exports.redis =
3、config.default.js中配置連線位址
config.redis =
,}
4、在egg中使用
await
this
set(
'userinfo'
,'張三');
let userinfo =
await
this
get(
'userinfo'
);
5、建議封裝redis工具,對資料做進一步優化處理。新建乙個服務檔案redis.js
const service =
require
('egg'
).service;
class
redisservice
extends
service
=this
value =
json
.stringify
(value);if
(!seconds)
else
}// 獲取
async
get(key)
=this
let data =
await redis.
get(key);if
(!data)
return
; data =
json
.parse
(data)
;return data;
}// 清空redis
async
flushall()
=this
redis.
flushall()
;return;}
}module.exports = redisservice;
6、使用
console.
time()
// 開始計時
let goodslist =
await
this
.service.redis.
get(
'goodslist');
if(!goodslist)
console.
timeend()
// 列印時長
可以看到,第一次訪問沒有redis快取,時間是9毫秒,第二次訪問,從redis中獲取資料,時間是0.6毫秒。這僅僅是一次資料庫查詢,如果進行複雜的資料庫查詢以及邏輯處理,耗費的時間會更長,redis可以將速度提公升至原來的數十倍甚至數百倍!
7、關閉redis
在config/plugin.js中將redis的enable改為false
exports.redis =
在service/redis.js中新增判斷,以get方法為例
let
=this
if(redis)
else
egg開發筆記(三)egg配合vscode除錯
1.1常規配置 vscode launch.json runtimeexecutable npm windows 啟動我們的 egg bin debug 並預設是 brk runtimeargs run debug inspect brk 日誌輸出到 terminal,否則啟動期的日誌看不到 con...
iphone 開發筆記二
11 iphone中變數值是否等於字串的判斷方法 objective c string1 isequaltostring 123 12 iphone的framework的目錄 mac developer platforms iphoneos.platform developer sdks iphon...
WINCE應用開發筆記二
1.sendmessage和postmessage postmessage是將訊息發給視窗所屬的執行緒的訊息佇列,並立即返回。sendmessage將訊息傳送出去後,直到處理完畢,返回。msdn中的解釋是會呼叫特定的視窗函式,比如,獲取listbox中當前選中的項,肯定需要通過listbox的視窗函...