首页 / PHP / 请问session存在哪里会比较好?
请问session存在哪里会比较好?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了请问session存在哪里会比较好?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3069字,纯文字阅读大概需要5分钟。
内容图文
![请问session存在哪里会比较好?](/upload/InfoBanner/zyjiaocheng/235/35d169a891284f1b857f7f4aabc8fd4b.jpg)
回复内容:
请问各位大神,session是存哪里比较好?
建议在Cookie里放一个SessionID,然后在服务端存信息。
服务端放Redis就可以,而且这些数据对读性能要求较高,但稳定性要求不高
一台机器上搞,随便你怎么放
一个项目多台机器搞,就要用到可以多台web访问的方式,最简单的就是共享存储NFS也可以,Redis也可以,访问量不大的话MySQL也可以
多个项目多台机器相互隔离的需要同步登录的搞,那就稍微复杂点,需要实现SSO了,也不复杂
其实主要看应用场景,过度设计没有必要
我们也是放在redis里,还可以多台主机共享session,配置方法如下:
(1)目前是nginx+fastcgi+php5-fpm解析php
(2)修改/etc/php5/fpm/php.ini
session.save_path = "tcp://your_ip:your_port?auth=yourpasswd"
看phpredis中已经有说明了, phpredis的网站:https://github.com/nicolasff/phpredis...
参考:https://github.com/nicolasff/phpredis...
说明:
PHP Session handler
phpredis can be used to store PHP sessions. To do this, configure session.save_handler and session.save_path in your php.ini to tell phpredis where to store the sessions:
session.save_handler = redis
session.save_path = "tcp://host1:6379?weight=1, tcp://host2:6379?weight=2&timeout=2.5, tcp://host3:6379?weight=2"
session.save_path can have a simple host:port format too, but you need to provide the tcp:// scheme if you want to use the parameters. The following parameters are available:
weight (integer): the weight of a host is used in comparison with the others in order to customize the session distribution on several hosts. If host A has twice the weight of host B, it will get twice the amount of sessions. In the example, host1 stores 20% of all the sessions (1/(1+2+2)) while host2 and host3 each store 40% (2/1+2+2). The target host is determined once and for all at the start of the session, and doesn't change. The default weight is 1. timeout (float): the connection timeout to a redis host, expressed in seconds. If the host is unreachable in that amount of time, the session storage will be unavailable for the client. The default timeout is very high (86400 seconds). persistent (integer, should be 1 or 0): defines if a persistent connection should be used. (experimental setting) prefix (string, defaults to "PHPREDIS_SESSION:"): used as a prefix to the Redis key in which the session is stored. The key is composed of the prefix followed by the session ID. auth (string, empty by default): used to authenticate with the server prior to sending commands. database (integer): selects a different database.
Sessions have a lifetime expressed in seconds and stored in the INI variable "session.gc_maxlifetime". You can change it with ini_set(). The session handler requires a version of Redis with the SETEX command (at least 2.0). phpredis can also connect to a unix domain socket: session.save_path = "unix:///var/run/redis/redis.sock?persistent=1&weight=1&database=0.
看你的服务器架构以及系统需求。
如果只有一台服务器,你放哪儿都可以;如果前端有多台web server,那么需要一个专门存放session的服务器,具体使用什么,可以选择很多,比如redis、memcache、mysql或者其他。
用memcache也是一个好办法,最主要是支持分布式哦亲~~~~一台或者多台服务器都可以
内容总结
以上是互联网集市为您收集整理的请问session存在哪里会比较好?全部内容,希望文章能够帮你解决请问session存在哪里会比较好?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。