#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
設置完成後註冊系統服務
chkconfig --add redis
然後測試一下redis能否啟動
進入redis文件夾後
輸入
service redis start
啟動成功後我們看一下redis是否配置成功
ps -ef|grep redis
沒有問題就可以創建軟連接了
ln -s /usr/local/src/redis-4.0.11/src/redis-cli /usr/bin/redis
測試redis
軟連接創建完直接在命令行輸入
redis即可
這裡要輸入你在配置文件中設置的密碼
到這裡redis就安裝完成了
配置防火牆
在上面的配置完成後我們還不能正常使用
還需要對防火牆進行配置
我們先查看一下端口的情況
netstat -lntp
我們可以看到6379已經被正確監聽了
在這裡由於我並不會對redis進行什麼操作
也不關心它保存的數據,所以我不需要從外網對redis進行訪問,因為它只是暫存一下項目的session
所以我這裡就不開放防火牆上的端口了
如果需要開放的小夥伴
使用以下命令
firewall-cmd --zone=public --add-port=這裡是你想開啟的端口/tcp --permanent (--permanent永久生效,沒有此參數重啟後失效)
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來保存用戶狀態
有這一行代碼
使用req.session就可以保存用戶的一些數據
接下來把剛才的兩行代碼
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"//主機
};
app.use(session( {
store: new RedisStore(options),
secret:"lhy2018"//以此字符串加密
}));
這樣使用req.session就可以將你想保存的會話數據存到redis中了
就可以避免內存溢出的風險了
然後用pm2重啟服務
閱讀更多 前端嫣然呀呀呀 的文章