PHP 实现多台服务器共用SESSION方案?
来源:互联网 发布:婚纱dvd制作软件 编辑:程序博客网 时间:2024/06/01 07:57
MySQL,然后面试官问并发很大怎么办,其实说明他不推荐存 MySQL。这种情况你得回答:存 Redis 或者 Memcached。
如果我是面试官,我会再问,用户量很大,单台 Redis 根本就放不下怎么办?这里也表明,把所有的 Session 全量存放单台机器上是不可行的。有2种方式:方法一,服务器端不保存 Session 了,将用户的 Session(注意:不仅是 SessionID) 存在用户本地(用 Cookie 或者 LocalData),但是明显有几个严重的问题:安全性、http传输的数据量、本地存储的上限等。还有,这就不是 Session 了,完全就是 Cookie 的方案。
方法二,那就是服务器端分布式存储了(Redis 集群、 Memcached 集群),既然是分布式,那么就必须保证用户每次请求都得到达指定的服务器,因为他的 Session 在那台指定分片上,标记的方式可以是在存在用户的 Cookie 里面,用户请求时,服务器根据 Cookie 里面的内容将请求 Route 到指定的分片上。
如果你这样回答了,我再问,如果某个分片挂了怎么办,那这所有用户的 Session 就丢了。这是就高可用了,对每个分片建多个复制集(从节点),主分片挂了,从节点就继续提供访问。
如果我是面试官,我会再问,用户量很大,单台 Redis 根本就放不下怎么办?这里也表明,把所有的 Session 全量存放单台机器上是不可行的。有2种方式:方法一,服务器端不保存 Session 了,将用户的 Session(注意:不仅是 SessionID) 存在用户本地(用 Cookie 或者 LocalData),但是明显有几个严重的问题:安全性、http传输的数据量、本地存储的上限等。还有,这就不是 Session 了,完全就是 Cookie 的方案。
方法二,那就是服务器端分布式存储了(Redis 集群、 Memcached 集群),既然是分布式,那么就必须保证用户每次请求都得到达指定的服务器,因为他的 Session 在那台指定分片上,标记的方式可以是在存在用户的 Cookie 里面,用户请求时,服务器根据 Cookie 里面的内容将请求 Route 到指定的分片上。
如果你这样回答了,我再问,如果某个分片挂了怎么办,那这所有用户的 Session 就丢了。这是就高可用了,对每个分片建多个复制集(从节点),主分片挂了,从节点就继续提供访问。
恩,分布式基本都是这个理。
PS:该答案转载自:https://segmentfault.com/q/1010000003099147/a-1020000003114100 中的推荐答案
阅读全文
0 0
- PHP 实现多台服务器共用SESSION方案?
- 实现多台服务器SESSION跨域——php
- PHP多台服务器如何共享session
- php+redis实现多台服务器内网存储session并读取
- php多台服务器怎样实现session共享1:写入数据库
- php多台服务器怎样实现session共享2:写入redis
- php+redis实现多台服务器内网存储session并读取
- PHP多台服务器跨域SESSION共享
- PHP多台服务器跨域SESSION共享
- php多台服务器跨域session共享
- PHP多台服务器跨域SESSION共享
- 多台memcache服务器(ubuntu)实现session共享
- 多台服务器共享session
- 实现多域名下共用一个SESSION
- PHP 实现多服务器共享 SESSION 数据
- PHP 实现多服务器共享 SESSION 数据
- PHP 实现多服务器共享 SESSION 数据
- PHP 实现多服务器共享 SESSION 数据
- 《剑指offer》刷题笔记(树):二叉树的下一个结点
- 147. Insertion Sort List
- js位运算符
- lumbda left join 并统计数量
- Monkey测试系列:2. MonkeyScript
- PHP 实现多台服务器共用SESSION方案?
- 关于Java虚拟机二三事(一)
- 分析函数:ROLLUP
- Android开发更改应用图标无效的问题 最终解决办法
- Map集合中value()方法与keySet()、entrySet()区别
- 从3G向4G演进的LTE主流技术特征
- Unity3D中自带事件函数的执行顺序
- 线上抓娃娃定制服务流程
- Java中Random()函数