node中Session持久化与Redis缓存

本文介绍了Cookie的工作原理,包括其在HTTP请求和响应中的作用,以及内存式和硬盘式Cookie的区别。接着,讲解了Node.js中使用cookie-parser中间件操作Cookie的方法。然后,详细阐述了Session的概念,以及如何使用express-session中间件来实现Session管理,并通过设置`cookie.maxAge`控制Session的有效时长。最后,讨论了Session持久化的必要性,推荐使用Redis作为Session的存储解决方案,以解决数据丢失和状态共享问题,同时介绍了Redis的特点和数据结构。
摘要由CSDN通过智能技术生成
  • Cookie是解决HTTP无状态性的有效手段,服务器可以设置(set-cookie)或读取cookie中所包含的信息。

1.2实现原理

Cookie定义了HTTP请求头和HTTP响应头,客户端和服务器端通过这些头信息进行状态交互。

  • 客户端第一次请求:服务器端如果需要记录用户信息,才会在响应信息中返回 Set-cookie 响应头

  • 客户端会根据响应头存储Cookie信息

  • 客户端再次请求:会在请求头上带上存储的cookie信息,服务端通过cookie信息识别用户

1.3cookie 类别

cookie 总是存储在客户端(通常指浏览器),根据其存储位置可以分为:内存式cookie、硬盘式cookie。

内存式:存储在内存中,浏览器关闭后清除,也非持久存储(会话cookie)

  • cookie 不包含到期日期,则可视为会话 cookie。 会话 cookie 存储在内存中,决不会写入磁盘。 当浏览器关闭时,cookie 将从此永久丢失

硬盘式:保存在硬盘中,浏览器关闭后不会清除,除非手动清除或到了过期时间,也叫持久存储(持久co 《大厂前端面试题解析+Web核心总结学习笔记+企

在使用 Redis 作为 .NET 应用程序的会话存储时,可以使用 Redis持久化功能来确保会话数据不会因为服务器重启或意外崩溃而丢失。Redis 提供了两种持久化方式:RDB 和 AOF。 1. RDB 持久化 RDB 持久化是将 Redis 内存的数据定期写入到磁盘上,即在指定的时间间隔内将内存的数据快照写入磁盘的一个 RDB 文件。当 Redis 重启时,可以将该文件加载到内存,以恢复 Redis 数据。 在 .NET 使用 Redis 的 RDB 持久化需要在 Redis 配置文件设置: ``` # 开启 RDB 持久化 save 900 1 save 300 10 save 60 10000 ``` 其,save 命令的三个参数分别表示: - 在 Redis 900 秒之内,如果至少有一个键被修改,则保存快照; - 在 Redis 300 秒之内,如果至少有 10 个键被修改,则保存快照; - 在 Redis 60 秒之内,如果至少有 10000 个键被修改,则保存快照。 2. AOF 持久化 AOF 持久化是将 Redis 执行的每个命令追加到一个磁盘上的文件,当 Redis 重启时,可以按照文件的命令顺序重放所有操作,以恢复 Redis 数据。 在 .NET 使用 Redis 的 AOF 持久化需要在 Redis 配置文件设置: ``` # 开启 AOF 持久化 appendonly yes # 指定 AOF 文件名 appendfilename "appendonly.aof" # 指定 AOF 文件保存路径 dir /path/to/redis/data ``` 其,appendonly 指定开启 AOF 持久化,appendfilename 指定 AOF 文件名,dir 指定 AOF 文件保存路径。 综上所述,在 .NET 使用 Redis 缓存 session 数据,可以通过 RDB 持久化或 AOF 持久化来确保数据的持久化。需要根据实际情况选择适合的持久化方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值