标签:分布 信息 redis pat tcp bsp emc save str
现在提到多服务器的共享session,几乎都是回答用redis。
对于redis实现几台服务器共享session,不是很理解。
假如一个网站分别部署在A B C 3 台服务器上,他们的代码都是相同的。用户在访问的过程中是随机切换到其他服务器
,使用redis来共享session,那么是这3台服务器是如何实现session 实时共享的?
首先要明确session和cookie的区别。浏览器端存的是cookie每次浏览器发请求到服务端是http 报文头是会自动加上你的cookie信息的。服务端拿着用户的cookie作为key去存储里找对应的value(session).
同一域名下的网站的cookie都是一样的。所以无论几台服务器,无路请求分配到哪一台服务器上同一用户的cookie是
不变的。也就是说cookie对应的session也是唯一的。
只要保证多台业务服务器访问同一个redis服务器(或集群)就行了。
将REDIS 另外的部署到第四台服务器D, A B C 三台服务器上的PHP配置连接的REDIS是这台D服务器。那么就实现了统一的SESSION 实时共享,
PHP设置Session共享(php.ini 配置redis)
如果你使用的是PHP那么恭喜你,配置非常的简单。PHP通过两行配置就可以把Session存放在Memcached或者Redis中,当然你要提前配置好他们。修改php.ini:
session.save_handler = memcache
session.save_path = "tcp://192.168.56.11:11211"
使用Redis存储Session
session.save_handler = redis # 默认的设置是file,这里改成redis session.save_path = "tcp://192.168.2.11:6379?auth=passwd" # 这里填redis的连接配置参数 ;session.save_path = "tcp://192.168.2.11:6379" # 如果redis不带密码,则使用这种配置 ;session.save_path = "tcp://127.0.0.1:6379" # 如果redis不带密码,则使用这种配置
上面这个redis的session_save_path的路径可以写成具体的一个ip地址。这样就实现session共享了。
Redis 分布式缓存,是如何实现多台服务器SESSION 实时共享的
标签:分布 信息 redis pat tcp bsp emc save str
原文地址:https://www.cnblogs.com/hcfinal/p/11043361.html