egg開發筆記(二)為egg中加入redis

2021-10-02 20:00:19 字數 2367 閱讀 7029

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的視窗函...