在php中session可以用files, mysql, apc, eaccelerator, memcache, shmop几种方式保存,你了解哪个 files, mysql保存session应该是最常见的了,但后面的几种方式就不明白了,原理是什么,有什么优缺点?还望高手指点指点.,,,, 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 其实就硬盘和内存两种,分什么弄那么多概念 ?硬盘的文件存储一个比一个慢,如files , mysql ...内存里就快,但容易掉失, 如memcache , shmop。 多谢coolesting醍醐灌顶呀,这个概念我一直没弄清楚。做保持登录的程序,用cookie在客户端,但想做一个显示当前在线会员的功能,只想到了session。开始准备用file,但考虑到如果会员过多的话,一个文件夹下保存过多session文件对性能有影响。准备用mysql,使用内存表做,我想这样的话,mysql保存session也是 内存类型的吧。这也遇到一个矛盾,内存表最大存储量只能是varchar(255),因为我只是在这里用到了session,还是其他的程序部分用到过,这就是说有可能session的长度不够用。这个问题,一直想找一个平衡点,如果myISAM的话,又怕影响性能。有朋友能给点建议吗? 先感谢你的回帖,但说实话,我很讨厌看到这几个字。看到过太多的关于优化的帖子,如此多的人会选择回复这么几个字母。memcache就真的那么神奇?貌似关于优化他都能胜任,并且也没说下具体方法,这让人很是郁闷。这个问题 概念弄明白了,最后还是选择了 file的方式,因为msql用内存表做长度限制让我没办法用。结贴 wisword,同意你的说法,内存肯定是快,但也会带来不少副作用。我放弃了使用session记录用户在线状态的想法,session仅仅在管理员后台使用,这样用file应该也没什么影响了,毕竟管理员还是少数 虽然已经结帖,但我今天才看到你4楼的回复,就讨论一下吧以前我也考虑个你这个问题,后来得到的结论是这样:正如你所说,性能和速度这之间有个平衡点,这个由硬件决定,如果我们只做软件开发的,这个是客观因素是不可改变的了那么我们可以从软件上入手,软件的应用关键是需求,你把要缓存的数据封装成类或接口,以便随时可以修改,其次,我们将开发划分成好几个阶段,如version 1.0, version 2.0当v1时我们全用session去做缓存,当然你可能给调用它们的函数或方法做些标记以示区分,当以后升级到v2时,我们用memcache来细化项目,把经常用的缓存不在放session,直接放内存,当v3时,再把固定不变的数据生成全静态,放于硬盘文件系统,等等,如是这般。一个好的,完美的项目不可能一蹴而就,一步到位,要经过长期升级和维护,根据需求决定,而需求是经常改变的,所以好的项目在于灵活性,很多项目因为策划过多过全面,中途夭斥。 一个关于&&简单问题 file_exists 中文目錄如何處理 如何在PHP中嵌入类似eweb Editor的文本编辑器? 缓存文件如何更新? mysql PHP接收VC传的数据的问题 急!!!!!!求 PHP 转化为 HTML 的软件 求助.用discuz的cookie共享问题 如何友好的提示错误? 如何用PHP改写配置文件? 一个关于mysql优化的问题,对于懂Mysql的应该很简单,来接分 域名注册和虚拟主机问题
醍醐灌顶呀,这个概念我一直没弄清楚。做保持登录的程序,用cookie在客户端,但想做一个显示当前在线会员的功能,只想到了session。
开始准备用file,但考虑到如果会员过多的话,一个文件夹下保存过多session文件对性能有影响。准备用mysql,使用内存表做,我想这样的话,mysql保存session也是 内存类型的吧。这也遇到一个矛盾,
内存表最大存储量只能是varchar(255),因为我只是在这里用到了session,还是其他的程序部分用到过,这就是说有可能session的长度不够用。这个问题,一直想找一个平衡点,如果myISAM的话,又怕影响性能。有朋友能给点建议吗?
先感谢你的回帖,但说实话,我很讨厌看到这几个字。看到过太多的关于优化的帖子,如此多的人会选择回复这么几个字母。memcache就真的那么神奇?貌似关于优化他都能胜任,并且也没说下具体方法,这让人很是郁闷。这个问题 概念弄明白了,最后还是选择了 file的方式,因为msql用内存表做长度限制让我没办法用。
结贴
以前我也考虑个你这个问题,后来得到的结论是这样:
正如你所说,性能和速度这之间有个平衡点,这个由硬件决定,
如果我们只做软件开发的,这个是客观因素是不可改变的了
那么我们可以从软件上入手,软件的应用关键是需求,你把要缓存的数据封装成类或接口,以便随时可以修改,
其次,我们将开发划分成好几个阶段,如version 1.0, version 2.0
当v1时我们全用session去做缓存,当然你可能给调用它们的函数或方法做些标记以示区分,
当以后升级到v2时,我们用memcache来细化项目,把经常用的缓存不在放session,直接放内存,
当v3时,再把固定不变的数据生成全静态,放于硬盘文件系统,等等,如是这般。
一个好的,完美的项目不可能一蹴而就,一步到位,要经过长期升级和维护,根据需求决定,
而需求是经常改变的,所以好的项目在于灵活性,很多项目因为策划过多过全面,中途夭斥。