php使用redis保存session,配置不多说。主要把配置文件中的自动开启session设置为0和save_handler变为user即可。
但是,经过自己写的redis类中,其中这个方法session_set_save_handler()我十分不解,不知道为什么他为什么返回的是true,但是里面就是写不进数据到redis中
换句话说,他复制给Session时,在同一个方法中能get到,但是换了个方法或者页面,就不见了,redis中也没有
经过百度了很久,尝试了各种方法都没有用
后面经过不断的debug,才发现了自己的错误。
嗯。。废话好像有点多,下面我介绍下如何解决
在debug的时候,我发现当他session_start()后,然后执行open方法,然后执行read方法,执行完以后,他直接就去之执行close方法了。
执行close方法后,不就直接关闭掉session_start()了吗,问题一下子就出来了
原因一开始我根据sessionId获取redis数据时,redis中还没有这个键值对,所以他返回了false,导致直接关闭了session
解决方法,当read时返回是false,则返回空值,这样就能轻松解决