session 重写进入redis测试
在实际业务中,当session存储过多 或者操作频繁,业务逐渐扩展的时候,文件存储已经无法满足session操作速度和需求,可以考虑用数据库或者nosql的redis来存储session,本文讲解如何用redis存储。数据库可以以此类推。
代码如下:
<?php global $redis;//声明全局变量redis $redis=new Redis();//实例化redis $redis->connect('127.0.0.1', 6379);//连接redis $redis->auth("redis的密码");//认证redis 请修改为你的密码 如果没有设置密码 注释该行代码 //从redis取数据 function get_redis($key) {global $redis;//声明全局变量redisreturn $redis->get($key);//get获取值 } //向redis存数据 function set_redis($key,$data,$expire_time=1800) {global $redis;//声明全局变量redis$redis->set($key,$data,$expire_time);//set设置值 } //开启session function sess_open() {} //关闭session function sess_close() {} //读取session sess_id就是 session_id function sess_read($sess_id) { $val=get_redis($sess_id);return(unserialize($val)); } //写入session sess_id就是 session_id sess_data就是session的整个数据 function sess_write($sess_id, $sess_data) {set_redis($sess_id,serialize($sess_data));session_commit(); } //清除session function sess_destroy() {} function sess_gc() {} //声明重写 session_set_save_handler('sess_open', 'sess_close','sess_read','sess_write','sess_destroy','sess_gc' );session_start(); $_SESSION['user']=array("name"=>"hello","tel"=>"world"); register_shutdown_function('session_write_close');//注册事件 页面结束写入session 关闭session exit();?>
redis管理工具中看到的截图
同样的,如果是数据库存储的话,可以建立一个 key value的数据库 session_id session_data两个字段就够了用来存储和更新。
Tips:session不采用文件存储还有一个好处 就是能够跨站共享,因为session被存储到后端的nosql数据库了,只要都连接这个后端数据,就能够共享session
转载于:https://www.cnblogs.com/lizhaoyao/p/6136513.html
session 重写进入redis测试相关推荐
- session共享(redis实现)
引言 大厂很多项目都是部署到多台服务器上,这些服务器在各个地区都存在,当我们访问服务时虽然执行的是同一个服务,但是可能是不同服务器运行的: 在我学习项目时遇到这样一个登录情景,假设有如下三台服务器(如 ...
- windows下php7.1安装redis扩展以及redis测试使用全过程
最近做项目,需要用到redis相关知识.在Linux下,redis扩展安装起来很容易,但windows下还是会出问题的.因此,特此记下自己实践安装的整个过程,以方便后来人. 一,php中redis扩展 ...
- php session存到redis,php Session存储到Redis的方法
php Session存储到Redis的方法 当然要写先安装php的扩展,可参考这篇文章:Redis及PHP扩展安装修改php.ini的设置 复制代码 代码如下: session.save_handl ...
- 8.redis解决分布式session问题 、redis在项目中难点
a.什么是session session是一种会话技术,我们知道http是无状态协议的,就是这次连接传输数据后,下次连接服务器是不知道这次的请求是谁的,因此我们要做一个标记,让服务器知道每次请求是哪个 ...
- 【Redis学习02】基于session和基于redis实现登录功能
文章目录 前言 1. 基于session实现短信登录功能 1.1 发送短信验证码 1.2 短信验证登录 1.3 登录校验功能 2. 集群的Session问题 3. 基于redis实现共享session ...
- 你的项目真的需要Session吗? redis保存session性能怎么样?
在web开发中,Session这个东西一直都很重要,至少伴随我10年之久, 前一段时间发生一个性能问题,因为Redis session 问题,后来想想 其实我的项目session 是不需要的. 先看看 ...
- 分布式Session解决方案_Token + Redis
接上一篇:分布式6大核心专题_分布式Session https://gblfy.blog.csdn.net/article/details/113802195 文章目录 1. 安装redis服务并启动 ...
- laravel redis_php session 存储到redis里
此方法是通过php原生写法(或配置)实现的session入redis,但是在通常情况下, 大家都是通过相应的web框架进行开发工作, 所以实际操作时, 应该多去翻翻框架的官方文档, 看有没有提供相应方 ...
- 在spring MVC项目中集成Spring session redis (使用spring session框架,redis作为存储缓存)...
2019独角兽企业重金招聘Python工程师标准>>> 1.为项目增加以来 pom.xml中使用 <!-- spring session 单点登录 --> //本项目使 ...
最新文章
- 用户层和内核层异常的处理流程
- Psych101(part8)--Day8
- SpringBoot 整合Redis报错:NoClassDefFoundError: redis/clients/util/SafeEncoder
- 打印循环换行_一个案例轻松认识Python 循环语句(for)——10以内的素数
- spring-in-action-mvc-jdbc搭建工程
- 高速掌握Lua 5.3 —— 扩展你的程序 (1)
- 809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。...
- 从源码理解Bean的生命周期执行顺序
- Java获取名字首字母拼音及用户按名字拼音分组工具
- php钱兆楼,PHP动态网站开发实例教程(第2版)
- ES3,ES5,ES6的区别
- 【PyQt5 知识点示例代码,2022年抓住金三银四涨薪好时机
- 华钜同创:亚马逊中常见的广告类型及其专业名词解释
- 【PG074】1 简略学习Aurora 64B/66B IP核
- 杰奇采集分页 php,修改杰奇1.7模板 给章节内容添加分页
- JavaScript插件开发
- Java2实用教程(第六版)第一章习题答案
- Java 代码界 3% 的王者?看我是如何解错这 5 道题的
- C语言课堂案例_求出小于或等于lim的所有素数并在a数组里,并返回素数的个数
- 一种独特的英语自学方法