php+redis实现多台服务器内网存储session并读取示例
Redis  /  管理员 发布于 4年前   187
大型网站由于大并发的问题会导致系统出现诡异的崩溃性问题这着实让人很是蛋疼,首先考虑的就是负载均衡服务器来处理这个,当然数据库的性能也是非常非常重要的,今天就说下在负载均衡情况下对于session这个问题如何处理,说实话不处理session其实也是可以的,但是在实际的情况中会出现一些让用户体验非常蛋疼的问题,比如购物下单的时候负载均衡调配服务器来回切换的过程中session丢失了,这个时候就尴尬了,用户就会郁闷我擦这什么鬼,于是乎各种担心就会出现,这破网站是不是有什么安全问题等等。下面就来说说这个问题的解决方案,配置php结合redis来存储session,假如我现在有2个(至少)服务器在做负载均衡: 1,主服务器安装php-redis 以及redis服务器端这个不多说去执行命令行yum或apt-get什么的,辅服务器只需要安装php-redis(这两个服务器必须在一个内网中不然外网访问着实不安全的) 2,来吧骚年打开的你服务器上的php.ini文件: 先看看php extension=redis.so是否开启 主和辅服务器的php-redis需要绑定一下ip(ip一致主服务器的redis-server) 这个为了安全起见设置一个redis链接的密码: 打开 vim /etc/redis/redis.conf requirepass 通信密码(修改这里) ok配置好重启redis : 3,测试Redis连接和验证: 如果设置了redis链接密码,现在尝试访问数据,应该得到一个AUTH错误接下来执行下 ok了到这步的时候已经完成99%了还差一步就是各种重启额 4,测试session是否写入redis: 速来围观,没错session写入redis了可以读取了,ok至此对于负载均衡的session也就基本解决了,剩下的就是在项目如何应用那就看你自己的业务需要。 最后在说一下php是世界上最好的语言,呵呵……session.save_handler = redissession.save_path = "tcp://【redis主服务器的内网ip】:6379″
redis.confbind【redis主服务器的内网ip】
sudo service redis-server restart
redis-cli -h 【redis主服务器内网ip】
> redis-cliredis内网ip:6397> keys *
service apache2 restartservice php5-fpm restart
'别安驹', 'num' => 'http://www.bieanju.com/');//连接redis$redis = $this->connectRedis();////检查session_idecho 'session_id:' . session_id() . '
';//redis存入的session(redis用session_id作为key,以string的形式存储)echo 'redis_session:' . $redis->get('PHPREDIS_SESSION:' . session_id()) . '
';echo 'php_session:' . json_encode($_SESSION['class']);print_r($_SESSION['bieanju']);?>您可能感兴趣的文章:
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号