ホームページ  >  に質問  >  本文

phpredis - php使用redis作为session的保存工具

在php使用redis作为session的保存工具时,遇到session被清理的问题导致用户没法登陆
请问该如何解决

我使用两种方式来定义session的保存机制
一种是

phpini_set('session.save_handler','Redis');
ini_set('session.save_path','tcp://localhost:6379');

另一种是

session.save_handler = Redis
session.save_path = "tcp://localhost:6379"

在php5.3.28和5.5.10下均不能正常使用session
但是都不能用,请问各位大侠如何解决
ps
@woshicixide 说我写的不详细 那么我就将所有的步骤写一遍

首先是开启redis 使用脚本redis-server.exe redis.conf命令运行redis服务器
然后在php.ini中修改session.save_handler 为redis session.save_handler = Redis
然后在php.ini中修改session.save_path 为 "tcp://localhost:6379" session.save_path = "tcp://localhost:6379"
然后重启Apache服务,重载php.ini
打开登陆页面http://localhost/login.php 输入用户名密码 登陆
浏览器自动跳转到登录成功页面,然后自动返回到登陆页
ps 在loginaction.php中将登陆的userid写入到session中来判断是否登陆

阿神阿神2771日前457

全員に返信(3)返信します

  • 迷茫

    迷茫2017-04-10 15:15:46

    我感觉是你的配置有问题吧,我贴一下我的配置。
    [Session]
    ; Handler used to store/retrieve data.
    ; http://php.net/session.save-handler
    session.save_handler = redis
    session.save_path = "tcp://xx.xx.xx.xx:6789?persistent=1&timeout=3&database=11&auth=d9cxa2xx67f2xxxxxxxxxxxx58exx5xfxd29"
    也不知道你的redis起起来了没,亦不知你的web服务器是否也启动了,有没有异常。redis扩展呢?

    返事
    0
  • 迷茫

    迷茫2017-04-10 15:15:46

    楼主的问题问的太大了,就好象用户在问为什么我这个网站打不开,楼主至少把提示什么错误、你是怎么调用的等等这种东西写出来
    先确定下你的redis是否需要账号密码,再试下把php配置里面的localhost改成127.0.0.1

    返事
    0
  • 高洛峰

    高洛峰2017-04-10 15:15:46

    其实我比较喜欢使用memcahced 来存储session这类数据!
    原因如下:
    1.无需设置密码
    2.数据结构简单,且响应速度很快
    3.做分布式很方便,一台机器专门放session,做共享

    返事
    0
  • キャンセル返事