前台网站整体优化的思路:
1. 首页、文章页、商品详情页、登录页、注册等这种页面内容不常发生变化的可以生成静态页(集群中可以使用反向代理服务器)
说明:这些页面中动态的内容使用AJAX来实时获取
2. 所有的页面都使用数据延迟加载技术
说明:刷新页面时只加载第一屏的数据,下面没有显示出来的数据不加载,只有当滚动条下拉到相关的位置时,才取了相应的数据
3. 有些数据需要实时动态获取不能生成缓存,如微博中的动态数据,购物车中的数据等等,这种数据可以通过以下两种办法优化
a. 数据库的优化(好实现、效果好、维护成本相对低)(读写分离)(实用)
a0. 数据库的参数优化
a1. 创建合适的索引
a2. 读、写分离
a3. 更大的集群
b. 使用memcache和redis这种做数据的缓存(效果好,成本高、维护成本高)(除非网站规则比较大)
注意:一般把数据比较小,访问比较的频繁的数据放到这里
一般只读写的数据用memcache
如果数据结构复杂需要算法的时可以用redis
a0. 内存比较少所以缓存的数据有限
总结:一般网站使用读、写分离即可
只有浏览量非常大,又要求性能时才会把数据全都缓存到内存中,比如微博这种网站
4. 把网站中一些访问非常频繁的数据缓存到memcache中(实用)
搭建一个小的memcache存一些网站使用频繁但数据量小
a. 把session存到memcache中
考虑到:
a1. 存内存比读硬盘快(性能)
a2. 在集群环境中,默认session机制会出现“session丢失”的问题,可以通过存到memcache中来解决
b. 把可以商品的浏览量存到sessoin中,这样就不用每次更新数据库了
统计:一般性的商城基本七台左右就够了:
2台数据库+2PHP服务服务器+负载均衡+(2+N)反向代理服务器+图片服务器