在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Session 与 Session的GC由于PHP的工作机制,它并没有一个daemon线程来定期的扫描Session 信息并判断其是否失效,当一个有效的请求发生时,PHP 会根据全局变量 session.gc_probability 和session.gc_divisor的值,来决定是否启用一个GC, 在默认情况下, session.gc_probability=1, session.gc_divisor =100 也就是说有1%的可能性启动GC(也就是说100个请求中只有一个gc会伴随100个中的某个请求而启动). Session永不过期1.首先,保证存储在服务器的session永久存在:session.gc_maxlifetime设置为一个很大的值就不会被回收 2.session.use_cookies设置为1,用cookie来传递sessionid 3.session.cookie_lifetime,这个代表sessionid在客户端Cookie储存的时间,默认是0,代表浏览器一关闭sessionid就作废……就是因为这个所以PHP的 session不能永久使用! 那么我们把它设置为一个我们认为很大的数字吧。
30天免密码登录实现思路: 可以通过session在服务端的有效时间来控制,也可以通过sessionid在cookie中的有效时间来控制
负载均衡下session的存储问题:同一个对话如果被分配到多个机器节点下,那么session将不能被访问到 解决方案: 1.会话保存:通过负载均衡哈希算法(ip或者uid)将一个用户的所有请求落在一个固定节点,那么session就可以被访问到 2.会话复制:将session文件用现有可行方案复制到集群所有节点下面,该方案不适合集群过大的情况 3.会话共享:将session文件存储在第三方共享资源上,比如redis等地方,所有请求取session都从一个地方取 |
2022-08-30
2022-08-18
2022-11-06
2022-08-14
2022-07-18
请发表评论