Yii2如何在程序中自定义设置session的过期时间?底层原理是什么?

简介: Yii2如何在程序中自定义设置session的过期时间?底层原理是什么?

在Yii2中,可以通过在程序中调用set()方法来设置会话数据,并通过setTimeout()方法来设置会话的过期时间。例如:

$session = Yii::$app->session;
$session->set('key', 'value');
$session->setTimeout(3600); // 1小时

上述代码将key和value存储到会话数据中,并将会话的过期时间设置为1小时。

底层原理:在Yii2中,会话数据和会话过期时间都是存储在会话数据中的。当我们调用set()方法设置会话数据时,Yii2会将数据存储到会话数据中,并自动生成一个时间戳作为会话数据的有效期限。当我们调用setTimeout()方法设置会话过期时间时,Yii2会将该过期时间设置到会话数据中,覆盖自动生成的时间戳。在每次读取会话数据时,Yii2会检查会话数据中的时间戳和过期时间,并比较它们与当前时间之间的差值,以确定会话是否已过期。如果会话已过期,则Yii2会自动删除会话数据。这种设计模式使得Yii2的会话管理系统具有很好的灵活性和可扩展性,开发者可以在程序中自由地设置会话数据和会话过期时间,而无需改变应用程序的会话代码。

相关文章
|
6月前
|
缓存 前端开发 Java
【二十八】springboot之通过threadLocal+参数解析器实现同session一样保存当前登录信息的功能
【二十八】springboot之通过threadLocal+参数解析器实现同session一样保存当前登录信息的功能
169 1
|
3月前
|
存储 缓存 NoSQL
Gin 应用多实例部署session问题、session参数与刷新
【8月更文挑战第7天】在Gin应用多实例部署中,传统基于内存的Session存储会导致数据不一致或丢失。需采用如数据库或Redis存储、及Session同步机制确保一致性。示例代码展示了使用Redis存储Session的过程。合理选择方案对保证系统稳定和用户体验至关重要。
|
6月前
会话跟踪技术概述及Cookie基本使用
会话跟踪技术概述及Cookie基本使用
54 0
|
缓存 NoSQL 前端开发
若依系统(分离版)后台接口被调时,代码哪里判断了token是否超时?
若依系统(分离版)后台接口被调时,代码哪里判断了token是否超时?
1130 0
|
存储 设计模式 数据库
Yii2如何设置session的过期时间?底层原理是什么?
Yii2如何设置session的过期时间?底层原理是什么?
372 0
|
缓存 PHP
在Yii2.0框架中,可以使用yii\caching\TagDependency类来实现对缓存的依赖管理,这个类可以在缓存失效时自动清除缓存。使用前需要先use吗?
在Yii2.0框架中,可以使用yii\caching\TagDependency类来实现对缓存的依赖管理,这个类可以在缓存失效时自动清除缓存。使用前需要先use吗?
111 0
|
Java
【javaweb】【Session】记录用户访问时间
【javaweb】【Session】记录用户访问时间
165 0
【javaweb】【Session】记录用户访问时间
|
缓存 Java 开发者
缓存工作原理 &@Cacheable 运行流程|学习笔记
快速学习缓存工作原理 &@Cacheable 运行流程
156 0
|
缓存 NoSQL Java
TimedCache 带时间缓存工具类,附加监听回调 | Java工具类
TimedCache 带时间缓存工具类,附加监听回调 | Java工具类
TimedCache 带时间缓存工具类,附加监听回调 | Java工具类
|
缓存 JSON Java
SpringBoot缓存注解@Cacheable之自定义key策略及缓存失效时间指定
上一篇博文介绍了Spring中缓存注解@Cacheable @CacheEvit @CachePut的基本使用,接下来我们将看一下更高级一点的知识点 (Spring系列缓存注解@Cacheable @CacheEvit @CachePut 使用姿势介绍)
1197 0
SpringBoot缓存注解@Cacheable之自定义key策略及缓存失效时间指定