当前位置 主页 > 服务器问题 > nginx问题汇总 >

    深入Nginx + PHP 缓存详解(2)

    栏目:nginx问题汇总 时间:2018-12-10 17:21


    include fastcgi.conf;
    #设置缓存的过程中发现无法获取cookie,经查需要定义这句话
    fastcgi_pass_header Set-Cookie;
    }
    log_format access '$remote_addr - $remote_user [$time_local] "$request" '
    '$status $body_bytes_sent "$http_referer" '
    '"$http_user_agent" $http_x_forwarded_for';
    access_log /httplogs/access.log access;
    }

    总的来说 nginx的proxy_cache和fastcgi_cache的缓存配置差不多。
    --------------------------------------------------------------------------------
    memcache缓存
    在讨论memcache缓存之前,我们先了解下mysql的内存缓存吧
    mysql的内存缓存可以在my.cnf中指定大小:内存表和临时表不同,临时表也是存放内存中,临时表最大的内存需要通过tmp_table_size=128M设定。当数据查过临时表的最大值设定时,自动转为磁盘表,此时因需要进行IO操作,性能会大大下降,而内存表不会,内存满了后,会提示数据满错误。
    例:
    复制代码 代码如下:
    create table test
    (
    id int unsigned not null auto_increment primary key
    state char(10),
    type char(20),
    date char(30)
    )engine=memory default charset=utf8

    内存表的特性:
    1.内存表的表定义存放在磁盘上,扩展名为.frm,所以重启不会丢失
    2.内存表的数据是存放在内存中,重启会丢失数据
    3.内存表使用一个固定的长度格式
    4.内存表不支持blob或text列,比如varchar与text字段就不会被支持
    5.内存表支持auto_increment列和对可包含null值的列的索引
    6.内存表不支持事物
    7.内存表是表锁,当修改频繁时,性能可能会下降

    下面我们来看看memcache,相对而言mysql的内存表限制较多。
    memcache的用途
    1.提高系统的并发能力
    2.减轻数据库的负担
    注:memcache linux系统32位只支持4G内存,同时memcache最长保存时间为30天。