欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

node.js使用redis儲(chǔ)存session的方法

 更新時(shí)間:2018年09月26日 10:10:07   作者:巽秋  
這篇文章主要介紹了node.js使用redis儲(chǔ)存session的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

轉(zhuǎn)儲(chǔ)session的原因

網(wǎng)上有許多session需要用數(shù)據(jù)庫(kù)儲(chǔ)存的原因,對(duì)我來說原因很簡(jiǎn)單,僅僅只是node的生產(chǎn)環(huán)境不允許將session存到服務(wù)器的內(nèi)存中。會(huì)報(bào)一個(gè)內(nèi)存溢出的風(fēng)險(xiǎn)警告。所以我決定將session轉(zhuǎn)儲(chǔ)到數(shù)據(jù)庫(kù)中。而用于存儲(chǔ)session的方案有許多,這里由于本人比較菜,所以選擇了主流的redis來保存我的session狀態(tài)

安裝redis

首先既然要使用redis,那么第一步當(dāng)然是將redis安裝到服務(wù)器上,服務(wù)器一般都是linux的操作系統(tǒng)。

所以下面是linux的安裝步驟

1.進(jìn)入官網(wǎng)下載redis


2.將下載好的文件通過xftp上傳到服務(wù)器并進(jìn)行安裝

這里我將安裝包放到了/usr/local/src 的目錄下

然后通過xshell來對(duì)其進(jìn)行解壓

cd /usr/local/src //進(jìn)入存放redis的文件
tar -xzvf redis-4.0.11.tar.gz //解壓文件

解壓完成后進(jìn)入解壓后的文件夾對(duì)其進(jìn)行編譯


編譯完成后就可以對(duì)其進(jìn)行配置

打開配置文件

vim redis.conf

為了讓其在后臺(tái)運(yùn)行

需將其修改為守護(hù)進(jìn)程模式


然后給redis設(shè)置密碼


修改完成按esc退出

:wq保存

然后將redis設(shè)置為開機(jī)啟動(dòng)

首先新建redis的開機(jī)啟動(dòng)腳本

vim /etc/init.d/redis

文件內(nèi)容如下

 #!/bin/sh
 # chkconfig: 2345 80 90
 # description: Start and Stop redis
 #PATH=/usr/local/bin:/sbin:/usr/bin:/bin
 REDISPORT=6379
 EXEC=/usr/local/src/redis-4.0.11/src/redis-server  
 REDIS_CLI=/usr/local/src/redis-4.0.11/src/redis-cli  
 PIDFILE=/var/run/redis_6379.pid
 CONF="/usr/local/src/redis-4.0.11/redis.conf"  
 AUTH="lhy"

case "$1" in
 start)
  if [ -f $PIDFILE ]
  then
    echo "$PIDFILE exists, process is already running or crashed"
  else
    echo "Starting Redis server..."
    $EXEC $CONF
  fi
  if [ "$?"="0" ] 
  then 
    echo "Redis is running..."
  fi 
  ;;
 stop)
  if [ ! -f $PIDFILE ]
  then
    echo "$PIDFILE does not exist, process is not running"
  else
    PID=$(cat $PIDFILE)
    echo "Stopping ..."
    $REDIS_CLI -p $REDISPORT SHUTDOWN
    while [ -x ${PIDFILE} ]
    do
     echo "Waiting for Redis to shutdown ..."
     sleep 1
    done
    echo "Redis stopped"
  fi
  ;;
 restart|force-reload)
  ${0} stop
  ${0} start
  ;;
 *)
 echo "Usage: /etc/init.d/redis {start|stop|restart|force-reload}" >&2
  exit 1
esac

這里的pidfile 在redis.conf配置文件中有

如下圖


編輯完成后保存退出

然后添加開機(jī)啟動(dòng)服務(wù)

vim /etc/rc.local

進(jìn)入文件后在末尾添加

service redis start

保存退出


然后設(shè)置權(quán)限

chmod 755 /etc/init.d/redis

設(shè)置完成后注冊(cè)系統(tǒng)服務(wù)

chkconfig --add redis

然后測(cè)試一下redis能否啟動(dòng)

進(jìn)入redis文件夾后

輸入

service redis start


啟動(dòng)成功后我們看一下redis是否配置成功

ps -ef|grep redis


沒有問題就可以創(chuàng)建軟連接了

ln -s /usr/local/src/redis-4.0.11/src/redis-cli /usr/bin/redis

測(cè)試redis

軟連接創(chuàng)建完直接在命令行輸入

redis即可

這里要輸入你在配置文件中設(shè)置的密碼

到這里redis就安裝完成了

配置防火墻

在上面的配置完成后我們還不能正常使用

還需要對(duì)防火墻進(jìn)行配置

我們先查看一下端口的情況

netstat -lntp


我們可以看到6379已經(jīng)被正確監(jiān)聽了

在這里由于我并不會(huì)對(duì)redis進(jìn)行什么操作

也不關(guān)心它保存的數(shù)據(jù),所以我不需要從外網(wǎng)對(duì)redis進(jìn)行訪問,因?yàn)樗皇菚捍嬉幌马?xiàng)目的session

所以我這里就不開放防火墻上的端口了

如果需要開放的小伙伴

使用以下命令

firewall-cmd --zone= public  --add-port=這里是你想開啟的端口 /tcp --permanent    (--permanent永久生效,沒有此參數(shù)重啟后失效)

firewall-cmd --reload 重啟防火墻

在node中使用redis

redis已經(jīng)安裝完成了

接下來就是在node中使用redis來暫存session了

首先在package.json中安裝

redis模塊,connect-redis模塊

"redis": "^2.8.0"
"connect-redis":"^3.3.3"

重新安裝一下依賴

cnpm i

這里由于npm比較慢所以我用的cnpm

然后就可以在代碼中使用了
先看一下原本沒用redis的代碼
我用express-session來保存用戶狀態(tài)

有這一行代碼

使用req.session就可以保存用戶的一些數(shù)據(jù)

接下來把剛才的兩行代碼

session = require('express-session');
app.use(session({secret:'lhy2018'}));

修改為如下代碼

session = require('express-session'),
 redis = require('redis'),
 client = redis.createClient({password:"lhy"}),//這里填寫redis的密碼
 RedisStore = require('connect-redis')(session);
client.on("error", function (err) {
 console.log("Error " + err);//用于提示錯(cuò)誤信息
});
let options = {
 client:client,
 port:6379,//端口號(hào)
 host:"127.0.0.1"http://主機(jī)
};
app.use(session( {
 store: new RedisStore(options),
 secret:"lhy2018"http://以此字符串加密
}));

這樣使用req.session就可以將你想保存的會(huì)話數(shù)據(jù)存到redis中了

就可以避免內(nèi)存溢出的風(fēng)險(xiǎn)了

然后用pm2重啟服務(wù)


總結(jié)

以上所述是小編給大家介紹的node.js使用redis儲(chǔ)存session的方法,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Node.js發(fā)送HTTP客戶端請(qǐng)求并顯示響應(yīng)結(jié)果的方法示例

    Node.js發(fā)送HTTP客戶端請(qǐng)求并顯示響應(yīng)結(jié)果的方法示例

    這篇文章主要介紹了Node.js發(fā)送HTTP客戶端請(qǐng)求并顯示響應(yīng)結(jié)果的方法,結(jié)合完整實(shí)例形式分析了nodejs發(fā)送http請(qǐng)求及響應(yīng)的相關(guān)操作技巧,需要的朋友可以參考下
    2017-04-04
  • Nodejs使用fs-extra模塊進(jìn)行目錄和文件操作用法示例

    Nodejs使用fs-extra模塊進(jìn)行目錄和文件操作用法示例

    fs-extra模塊是基于fs?的文件操作相關(guān)工具庫(kù),封裝了一些fs實(shí)現(xiàn)起來相對(duì)復(fù)雜的工具,下面這篇文章主要給大家介紹了關(guān)于Nodejs使用fs-extra模塊進(jìn)行目錄和文件操作用法的相關(guān)資料,需要的朋友可以參考下
    2024-06-06
  • node.js中的events.EventEmitter.listenerCount方法使用說明

    node.js中的events.EventEmitter.listenerCount方法使用說明

    這篇文章主要介紹了node.js中的events.EventEmitter.listenerCount方法使用說明,本文介紹了events.EventEmitter.listenerCount的方法說明、語法、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • Nodejs學(xué)習(xí)筆記之入門篇

    Nodejs學(xué)習(xí)筆記之入門篇

    本系列教程致力于教會(huì)你如何用Node.js來開發(fā)應(yīng)用,過程中會(huì)傳授你所有所需的“高級(jí)”JavaScript知識(shí)。絕不是一篇“Hello World”的教程。
    2015-04-04
  • 使用ExcelJS快速處理Node.js爬蟲數(shù)據(jù)

    使用ExcelJS快速處理Node.js爬蟲數(shù)據(jù)

    Excel.js是一個(gè)強(qiáng)大的JavaScript庫(kù),它提供了方法處理Excel文件,例如創(chuàng)建和編輯工作簿、讀取和寫入數(shù)據(jù)、處理行和列、設(shè)置樣式、導(dǎo)入和導(dǎo)出數(shù)據(jù)等,本文介紹使用ExcelJS快速處理Node.js爬蟲數(shù)據(jù)的方法,一起看看吧
    2024-01-01
  • NodeJs中express框架的send()方法簡(jiǎn)介

    NodeJs中express框架的send()方法簡(jiǎn)介

    這篇文章主要介紹了NodeJs中express框架的send()方法簡(jiǎn)介,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • Node.js的環(huán)境安裝配置(使用nvm方式)

    Node.js的環(huán)境安裝配置(使用nvm方式)

    在我們前端開發(fā)工程中,很多繁瑣機(jī)械的操作都是會(huì)慢慢的被抽離出來的,比如當(dāng)我們?yōu)閐om操作和瀏覽器兼容性感到厭煩時(shí),jQuery出現(xiàn)了,隨著時(shí)間的發(fā)展,JavaScript現(xiàn)在被應(yīng)用到了服務(wù)器中,但是首先第一步我們要學(xué)會(huì)如何安裝配置Node.js的環(huán)境,本文是使用nvm方式,來一起看看。
    2016-10-10
  • Nodejs獲取網(wǎng)絡(luò)數(shù)據(jù)并生成Excel表格

    Nodejs獲取網(wǎng)絡(luò)數(shù)據(jù)并生成Excel表格

    這篇文章主要為大家詳細(xì)介紹了Nodejs獲取網(wǎng)絡(luò)數(shù)據(jù)并生成Excel表格的具體實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Node.js里面的內(nèi)置模塊和自定義模塊的實(shí)現(xiàn)

    Node.js里面的內(nèi)置模塊和自定義模塊的實(shí)現(xiàn)

    這篇文章主要介紹了Node.js里面的內(nèi)置模塊和自定義模塊的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 使用nvm安裝node的過程及注意事項(xiàng)

    使用nvm安裝node的過程及注意事項(xiàng)

    在學(xué)習(xí)vue的過程中,最開始的就是要先安裝nodejs環(huán)境,此處記錄安裝過程及注意事項(xiàng),首先需要先卸載程序中卸載先前安裝過的nvm,刪除文件管理器中安裝的文件,感興趣的朋友跟隨小編一起看看吧
    2024-06-06

最新評(píng)論