1.session设置问题
我们把session存在SESSION_DATA这一变量中。- 目前 session 直接是 js 变量,放在nodejs 进程内存中
- 第一,进程内存有限,访问量过大,内存暴增怎么办?
- 第二:正式上线运行是多进程,进程之间内存无法共享
解决方案 redis
-
web server 最常用的缓存数据库,数据存放在内存中
-
相比于 mysql,访问速度快(内存和硬盘不是一个数量级的)
-
但是成本更高,可存储的数据量更小(内存的硬伤)
为何 session 适合用 redis? -
session 访问频繁,对性能要求极高
-
session 可不考虑断电丢失数据的问题(内存的硬伤)
-
session 数据量不会太大(相比于mysql 中数据的存储)
2.redis 安装及使用
[redis教程](https://www.runoob.com/redis/redis-install.html) 我的redis目录D:\学习资料\20191206\20191206\redis-4windows64\redis-4windows64\Redis
C:\Users\way liu>d:
D:\>cd D:\学习资料\20191206\20191206\redis-4windows64\redis-4windows64\Redis
D:\学习资料\20191206\20191206\redis-4windows64\redis-4windows64\Redis>redis-server.exe redis.windows.conf
_._
_.-``__ ''-._
_.-`` `. `_. ''-._ Redis 3.0.504 (00000000/0) 64 bit
.-`` .-```. ```\/ _.,_ ''-._
( ' , .-` | `, ) Running in standalone mode
|`-._`-...-` __...-.``-._|'` _.-'| Port: 6379
| `-._ `._ / _.-' | PID: 19108
`-._ `-._ `-./ _.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' | http://redis.io
`-._ `-._`-.__.-'_.-' _.-'
|`-._`-._ `-.__.-' _.-'_.-'|
| `-._`-._ _.-'_.-' |
`-._ `-._`-.__.-'_.-' _.-'
`-._ `-.__.-' _.-'
`-._ _.-'
`-.__.-'
[19108] 11 Oct 21:56:08.643 # Server started, Redis version 3.0.504
[19108] 11 Oct 21:56:08.757 * DB loaded from disk: 0.111 seconds
[19108] 11 Oct 21:56:08.757 * The server is now ready to accept connections on port 6379
C:\Users\way liu>d:
D:\>cd D:\学习资料\20191206\20191206\redis-4windows64\redis-4windows64\Redis
D:\学习资料\20191206\20191206\redis-4windows64\redis-4windows64\Redis>redis-cli.exe -h 127.0.0.1 -p 6379
127.0.0.1:6379> auth "123456"
OK
127.0.0.1:6379> set myname wayliu
OK
127.0.0.1:6379> get myname
"wayliu"
127.0.0.1:6379>
打开另一个cmd,由于设置了密码,需要auth "密码"连接。
127.0.0.1:6379> keys *
1) "myKey"
2) "ZDXH:user:users"
3) "ZDXH:course:courses"
4) "myname"
keys * 查看所有key
del myname
(integer) 1
127.0.0.1:6379> keys *
1) "myKey"
2) "ZDXH:user:users"
3) "ZDXH:course:courses"
del key 删除key