hdinfo
V2EX  ›  PHP

缓存,是否需要同时安装APC和Memcached?

  •  
  •   hdinfo · Aug 31, 2013 · 7684 views
    This topic created in 4813 days ago, the information mentioned may be changed or developed.
    512内存的云主机,主要跑一个Discuz的论坛

    Discuz支持APC,所以是否需要同时安装APC和Memcached?

    听说APC只是php加速,Memcached是数据库查询缓存加速,所以应该需要同时安装吧??

    具体不是很懂,所以问问大家
    16 replies  •  1970-01-01 08:00:00 +08:00
    laogui
    laogui
    Aug 31, 2013❤️1
    1
    一直同时用,没什么问题。
    freefcw
    freefcw
    Aug 31, 2013❤️1
    2
    必须要啊。。。你自己都知道apc和memcached作用不一样了,虽然apc自带一些缓存功能,但是和memcached不是一个作用
    Loveyuki
    Loveyuki
    Aug 31, 2013❤️1
    3
    APC 自带了 key-value 缓存, 速度也比 memcached 快,但是因为他基于共享内存的,只能本机的 PHP 进程使用。分布式做不到。

    memcached 的访问是基于tcp/udp网络协议的,通讯协议确定以后,可以在不同机器和不同语言之间共享。分布式很容易做到。
    wzxjohn
    wzxjohn
    Aug 31, 2013
    4
    512M内存就别玩memcache了吧。。。
    julyclyde
    julyclyde
    Aug 31, 2013
    5
    建议你先搞明白这俩是做什么的。memcached并不是装了就能起作用的,而是应用程序主动去用它才行
    kennedy32
    kennedy32
    Aug 31, 2013
    6
    跟随官方脚步,转到zendopcache中。。。。
    raincious
    raincious
    Aug 31, 2013❤️1
    7
    楼主,建议测试下discuz看能不能跑在php 5.5上,如果能就装php 5.5,然后上opcache,然后再上个memcached,这样就全了。速度能快很多倍。

    我最近的一个项目跑在php 5.5上比跑在我自己php 5.4的开发环境上竟然快10倍还多一点(大部分5ms内产生页面)。当然,我的框架是针对php 5.5优化了下的倒是。

    不过看测评,光是php 5.4 + apc VS php 5.5 + opcache这速度就不只差一点半点了。

    另外。。。如果楼主内存小但是胆子大的话+没有特别大量的数据需要缓存+不需要分布式缓存的话,可以试试看直接用文件缓存,然后让网站运行在/dev/shm上,同时加上php 5.5 + opcache。不知道这样速度是不是能更快。
    thbourlove
    thbourlove
    Sep 1, 2013
    8
    @raincious `我的框架是针对php 5.5优化了下的`求介绍针对php 5.5都可以做什么特别的优化?
    gaody
    gaody
    Sep 1, 2013
    9
    @raincious 求教
    hdinfo
    hdinfo
    OP
    Sep 1, 2013
    10
    php 目前用的是5.3,因为一些脚本是5.3写的,所以暂时没有升级的打算。

    目前APC+Memcached+gzip,discuz速度还可以,大部分页面5毫秒内也能打开,所以暂时不想折腾了。谢谢大家。
    nine
    nine
    Sep 1, 2013
    11
    @raincious 同求,顺便求评测地址。。
    raincious
    raincious
    Sep 1, 2013❤️1
    12
    @thbourlove @gaody opcache可以自动缓存php编译后的opcode。这样的话,如果php文件本身没有被修改过,那么这个文件在之后就不需要重新解析。而是直接用之前的opcode运行就好了。

    所以,我将数据什么的用var_export导出成数组字符串,然后存成php文件缓存,下次直接include使用这个文件就行了。

    我自己的实验结果是比memcached快。所以如果未来不考虑分布式和同步的话,也可以考虑用文件缓存。只要不经常写就行了。

    然后在我的框架里添加了支持,可以将:核心的实例、所创建的所有对象的实例、模板、缓存存储为php文件,然后速度自然就飞快了。(其实没什么技术含量的)

    框架源是开源的,献丑下:https://github.com/raincious/facula
    suckli
    suckli
    Sep 1, 2013❤️1
    14
    APC适合不频繁更改的数据,如果频繁修改缓存的数据,APC会出现严重的内存碎片,最终缓存会被耗尽。我就被坑过一次,所以还得具体看业务。
    freefcw
    freefcw
    Sep 1, 2013
    16
    @Loveyuki

    @suckli 说的是,APC还是尽量不要用来做缓存了,专门用来他的OPCODE即可,个人比较喜欢放一些配置在APC里面
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4164 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 61ms · UTC 05:39 · PVG 13:39 · LAX 21:39 · JFK 00:39
    ♥ Do have faith in what you're doing.