最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js使用redis儲存session的方法

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

轉儲session的原因

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

安裝redis

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

所以下面是linux的安裝步驟

1.進入官網下載redis


2.將下載好的文件通過xftp上傳到服務器并進行安裝

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

然后通過xshell來對其進行解壓

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

解壓完成后進入解壓后的文件夾對其進行編譯


編譯完成后就可以對其進行配置

打開配置文件

vim redis.conf

為了讓其在后臺運行

需將其修改為守護進程模式


然后給redis設置密碼


修改完成按esc退出

:wq保存

然后將redis設置為開機啟動

首先新建redis的開機啟動腳本

vim /etc/init.d/redis

文件內容如下

 #!/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配置文件中有

如下圖


編輯完成后保存退出

然后添加開機啟動服務

vim /etc/rc.local

進入文件后在末尾添加

service redis start

保存退出


然后設置權限

chmod 755 /etc/init.d/redis

設置完成后注冊系統(tǒng)服務

chkconfig --add redis

然后測試一下redis能否啟動

進入redis文件夾后

輸入

service redis start


啟動成功后我們看一下redis是否配置成功

ps -ef|grep redis


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

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

測試redis

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

redis即可

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

到這里redis就安裝完成了

配置防火墻

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

還需要對防火墻進行配置

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

netstat -lntp


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

在這里由于我并不會對redis進行什么操作

也不關心它保存的數(shù)據,所以我不需要從外網對redis進行訪問,因為它只是暫存一下項目的session

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

如果需要開放的小伙伴

使用以下命令

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

firewall-cmd --reload 重啟防火墻

在node中使用redis

redis已經安裝完成了

接下來就是在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ù)據

接下來把剛才的兩行代碼

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);//用于提示錯誤信息
});
let options = {
 client:client,
 port:6379,//端口號
 host:"127.0.0.1"http://主機
};
app.use(session( {
 store: new RedisStore(options),
 secret:"lhy2018"http://以此字符串加密
}));

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

就可以避免內存溢出的風險了

然后用pm2重啟服務


總結

以上所述是小編給大家介紹的node.js使用redis儲存session的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!

相關文章

  • Node.js使用NodeMailer發(fā)送郵件實例代碼

    Node.js使用NodeMailer發(fā)送郵件實例代碼

    本篇文章主要介紹了Node.js使用NodeMailer發(fā)送郵件實例代碼,具有一定的參考價值,有興趣的可以了解一下。
    2017-03-03
  • 如何用nodejs搭建代理服務器

    如何用nodejs搭建代理服務器

    這篇文章主要介紹了如何用nodejs搭建代理服務器,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Node.JS 版本管理工具Fnm安裝及配置

    Node.JS 版本管理工具Fnm安裝及配置

    本文主要介紹了Node.js版本管理工具Fnm的安裝和配置過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-10-10
  • Mac下安裝node.js及環(huán)境配置全過程

    Mac下安裝node.js及環(huán)境配置全過程

    這篇文章主要介紹了Mac下安裝node.js及環(huán)境配置全過程,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-05-05
  • 詳解nodejs微信公眾號開發(fā)——2.自動回復

    詳解nodejs微信公眾號開發(fā)——2.自動回復

    這篇文章主要介紹了詳解nodejs微信公眾號開發(fā)——2.自動回復,非常具有實用價值,需要的朋友可以參考下
    2017-04-04
  • Node.js實現(xiàn)兼容IE789的文件上傳進度條

    Node.js實現(xiàn)兼容IE789的文件上傳進度條

    這篇文章給大家介紹了如何實現(xiàn)兼容IE789的文件上傳進度條,如果你的工作用過上傳圖片或上傳大文件啥的,一般在IE低版本瀏覽器里,會切換到用flash解決,可是有些人肯定不會為了老舊IE的進度條而去學flash,那么下面來一起看看吧。
    2016-09-09
  • 基于Node-red的在線評語系統(tǒng)(可視化編程,公網訪問)

    基于Node-red的在線評語系統(tǒng)(可視化編程,公網訪問)

    Node-Red是IBM公司開發(fā)的一個可視化的編程工具,在網頁內編程,主要是拖拽控件,代碼量很小,這篇文章主要介紹了基于Node-red的在線評語系統(tǒng)(可視化編程,公網訪問),需要的朋友可以參考下
    2022-01-01
  • 使用Node.js創(chuàng)建HTTP服務器并實現(xiàn)公網訪問本地Server的步驟

    使用Node.js創(chuàng)建HTTP服務器并實現(xiàn)公網訪問本地Server的步驟

    Node.js含有一系列內置模塊,使得程序可以脫離 Apache HTTP Server 或 IIS,作為獨立服務器運,下面將介紹如何簡單幾步實現(xiàn)遠程公共網絡下訪問windwos node.js的服務端,感興趣的朋友一起看看吧
    2023-11-11
  • 使用node.js 制作網站前臺后臺

    使用node.js 制作網站前臺后臺

    本文給大家介紹實用node.js 制作網站前臺和后臺,非常的詳盡,有需要的朋友可以參考下
    2014-11-11
  • 基于Express實現(xiàn)遞歸遍歷文件和CRUD操作

    基于Express實現(xiàn)遞歸遍歷文件和CRUD操作

    在現(xiàn)代的?Web?應用開發(fā)中,文件管理是一個常見而重要的需求,所以本文就來講講如何利用?Express?框架,在遞歸遍歷文件之后實現(xiàn)強大的?CRUD?操作,構建一個功能完善的文件管理系統(tǒng),感興趣的可以了解一下
    2023-06-06

最新評論

曲周县| 肥城市| 海盐县| 东至县| 延川县| 阿城市| 满洲里市| 柘荣县| 惠安县| 海盐县| 柳江县| 新郑市| 漠河县| 柯坪县| 巴塘县| 义乌市| 叶城县| 安阳县| 鄱阳县| 大化| 开远市| 安福县| 五原县| 新兴县| 侯马市| 德格县| 巴林左旗| 信宜市| 湖北省| 无锡市| 遂宁市| 黄山市| 黔江区| 灵寿县| 嘉兴市| 平武县| 阿合奇县| 仪征市| 宜阳县| 皋兰县| 绍兴县|