首页 > 代码库 > Ubuntu上使用Redis数据库存储SessionID并实现Session共享

Ubuntu上使用Redis数据库存储SessionID并实现Session共享

<style>p { margin-bottom: 0.1in; direction: ltr; color: #00000a; line-height: 120%; text-align: left; orphans: 2; widows: 2 } p.western { font-family: "Liberation Serif", serif; font-size: 12pt } p.cjk { font-family: "Noto Sans CJK SC Regular"; font-size: 12pt } p.ctl { font-family: "FreeSans"; font-size: 12pt } a:link { }</style>

Ubuntu上使用Redis数据库存储SessionID并实现Session共享

第一部分:安装及配置Redis 数据库

安装Redis database server. 参见:http://grainier.net/how-to-install-redis-in-ubuntu/

Redis官网: https://redis.io/

$ wget http://download.redis.io/releases/redis-3.2.8.tar.gz

$ tar xzf redis-3.2.8.tar.gz

$ cd redis-3.2.8

$ make

$ make test

$ cat /sys/kernel/mm/transparent_hugepage/enabled //显示当前THP启用状况

$ sudo su 切换到root 然后 # echo never > /sys/kernel/mm/transparent_hugepage/enabled 切换THP状态。可以 add it to your /etc/rc.local in order to retain the setting after a reboot.

$ sudo make install //将编译好的可执行文件复制到合适的地方以完成安装。



redis 主要文件作用如下:

redis-serverRedis服务器的daemon启动程序

redis-cliRedis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作

redis-benchmarkRedis性能测试工具,测试Redis在你的系统及你的配置下的读写性能

redis-statRedis状态检测工具,可以检测Redis当前状态参数及延迟状况

使用帮助:

$ cd utils

$ sudo ./install_server.sh

设置相应参数 (可将默认的port 6379 改为其他值,比如 6535).

Port : 6535

Config file : /etc/redis/6535.conf

Log file : /var/log/redis_6535.log

Data dir : /var/lib/redis/6535

Executable : /usr/local/bin/redis-server

Cli Executable : /usr/local/bin/redis-cli



命令使用:



$ sudo service redis_6535 start

$ sudo service redis_6535 stop

$ sudo service redis_6535 restart

$ redis-server --help



通过客户端连接Redis服务器:

$ redis-cli -p 6535 //登录

$ select 1 //选择数据库

$ keys * //列出所有Key

$ get KEY_NAME //获取值

Redius 安全设置: https://www.digitalocean.com/community/tutorials/how-to-secure-your-redis-installation-on-ubuntu-14-04



第二部分:网站代码(放在服务器端主文件www.js里面)

var session = require(‘express-session‘),

RedisStore = require(‘connect-redis‘)(session), //使用Redis 数据库存储session信息

redis = require("redis"), //使用Radis客户端node_redis



//================设置Redis 数据库存储共享session==================

rsclient = redis.createClient({ //创建redis客户端实例

host: ‘127.0.0.1‘,

port: 6535,

db:1});



// ==============设置 session (此条应放在passport之前)==============

var sessionMiddleware = session({

store: new RedisStore({client: rsclient}), //设置将session存储在Redis数据库里面

secret: ‘putyoursecrethere‘, //加密字符串,‘putyoursecrethere‘可改为别的字符串

resave: true,

saveUninitialized: true

}); 

Ubuntu上使用Redis数据库存储SessionID并实现Session共享