V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
timsims
V2EX  ›  PHP

PHP 下可使用哪些“非分布式”内存缓存技术?

  •  
  •   timsims · 2015-10-12 17:41:45 +08:00 · 2667 次点击
    这是一个创建于 3361 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天去面试,提到以前的项目使用 Redis ,面试官(他是做.net 的, 不懂 php )问既然你们项目没有用到分布式部署,为什么要用 Redis ,而不直接用本机的内存

    我说 Redis 就是和项目放在一台机上的,就是使用本机内存,他说 Redis 、 Memcached 这些是分布式的技术,即使在本机调用也会有消耗(忘了具体说法,我理解是通过端口会造成一定消耗)

    于是问题来了, 我猜.net 可以直接保存到内存里,但他的说法如果在 PHP 下是否有道理? PHP 下有哪些“非分布式”内存缓存技术可用?
    9 条回复    2015-10-19 12:07:36 +08:00
    xuxu
        1
    xuxu  
       2015-10-12 17:46:23 +08:00
    APC 之类的
    timsims
        2
    timsims  
    OP
       2015-10-12 17:49:39 +08:00
    APC 都 deprecated 了
    chairuosen
        3
    chairuosen  
       2015-10-12 17:51:45 +08:00
    他不知道 PHP 是一次性的呀?
    之前项目用的 yac
    moro
        4
    moro  
       2015-10-12 22:42:16 +08:00
    PHP 有 opcache ,这个是代码缓存
    Redis 是内存数据库,有很多数据格式支持,缓存只是当 mamcached 用了。
    Memcached 分布式只是放在不同机器上,通过一定算法 hash key 找到指定机器而已,其实还是单机的。
    redis3 分布式是非集中式的,每个节点都可以转发。
    内存缓存已经不是 php 的范畴,只是 php 拿来用而已。
    jhdxr
        5
    jhdxr  
       2015-10-13 00:05:57 +08:00   ❤️ 1
    .net 之类的是可以常驻内存的,所以你可以直接申请一个变量当做缓存用。。。但是 php 是单次请求完了就挂了。。。所以一般内存缓存都是借助别的。。。
    zhengkai
        6
    zhengkai  
       2015-10-13 11:49:18 +08:00
    跟他讲第 22 条军规吧:

    如果你所有服务只用一台机器,说明你压根不需要在乎浪费的那一点点性能
    ryd994
        7
    ryd994  
       2015-10-13 23:19:10 +08:00 via Android
    他就不考虑可扩展性么?
    他就不知道 PHP 一次性么?
    还是说他只说希望你答 loopback 的开销所以应该用 sockfile ?
    nofeeling
        8
    nofeeling  
       2015-10-15 14:08:53 +08:00
    swoole_table
    shuimugan
        9
    shuimugan  
       2015-10-19 12:07:36 +08:00
    挑个 php 框架看下文档的缓存部分就可以知道 php 常用的缓存组件咯
    http://www.yiichina.com/doc/guide/2.0/caching-data
    用 redis 个人认为的好处就是管理方便,无论是 cli 还是 gui 工具都不错
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2266 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 16:11 · PVG 00:11 · LAX 08:11 · JFK 11:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.