一、设置高速缓存前
传统缓存策略
- 将测试页放置到openresty中nginx的默认发布目录下
- 压力测试
ab -c10 -n5000 http://172.25.2.1/example.php
二、设置高速缓存后
高效缓存策略
当所请求的uri以“.php”结尾时,首先到memcache中查询有没有以 u r i uri uriargs为key的数据,如果有则直接返回;否则,执行location的逻辑,如果返回的http状态码为200,则在输出前以 u r i uri uriargs为key,将输入结果存入memcache。
vim /usr/local/openresty/nginx/nginx.conf
upstream memcache {
server 127.0.0.1:11211;
keepalive 512;
}
location /memc {
internal;
memc_connect_timeout 100ms;
memc_send_timeout 100ms;
memc_read_timeout 100ms;
set $memc_key $query_string;
set $memc_exptime 300;
memc_pass memcache;
}
location ~ \.php$ {
set $key $uri$args;
srcache_fetch GET /memc $key; %现在memcache中找,如果有则直接返回,如果没有再通过fastcgi去后端找
srcache_store PUT /memc $key; %将在后端找到的值存储到memcache中,下次再请求的时候可以直接返回
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
}
/usr/local/openresty/nginx/sbin/nginx -t
检测是否有语法错误
/usr/local/openresty/nginx/sbin/nginx -s reload
重新加载
- 压力测试
ab -c10 -n5000 http://172.25.2.1/example.php