V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
hoythan
V2EX  ›  问与答

大量字符串如何缓存比较合适?

  •  
  •   hoythan · May 27, 2017 · 2086 views
    This topic created in 3258 days ago, the information mentioned may be changed or developed.

    一开始是使用 memcached 缓存,但是有长度限制. 后来使用 mysql 缓存,用 key value 的方式缓存处理好的内容.

    程序用的是 PHP

    有更好的办法吗?

    18 replies    2017-05-27 14:29:26 +08:00
    hoythan
        1
    hoythan  
    OP
       May 27, 2017
    我是不是被拉黑了?发一个主题每次都在很后面,必须置顶才行.
    hoythan
        2
    hoythan  
    OP
       May 27, 2017
    还想到了一个吧内容输出成静态文件,再读入文件
    iyaozhen
        3
    iyaozhen  
       May 27, 2017 via Android
    大量是多大?单个有多长?

    gz 压缩放 redis ?或者直接文件缓存呗
    kindjeff
        4
    kindjeff  
       May 27, 2017
    试试 redis 呗。
    hoythan
        5
    hoythan  
    OP
       May 27, 2017
    @iyaozhen
    @kindjeff
    10mb 以内的字符串, redis 快还是 直接保存成静态文件读取快
    yidinghe
        6
    yidinghe  
       May 27, 2017
    “大量字符串”指的是缓存值的长度大还是缓存项的数量大?
    hoythan
        7
    hoythan  
    OP
       May 27, 2017
    @yidinghe 需要缓存的 value 字符串长度有 5.2mb.
    yidinghe
        8
    yidinghe  
       May 27, 2017
    https://redis.io/topics/data-types
    "A String value can be at max 512 Megabytes in length"
    Redis 可以用。
    hoythan
        9
    hoythan  
    OP
       May 27, 2017
    @yidinghe 不知道哪个快? 5.2mb 字符串 直接存储为文件 取需要 0.034 秒感觉还是可以的
    yidinghe
        10
    yidinghe  
       May 27, 2017
    @hoythan 没区别,一般这种情况网络带宽反而是瓶颈。
    neilwong
        11
    neilwong  
       May 27, 2017
    如果一个字符串 5.2M,可能要考虑下内存吃不吃的消,吃的消就放 redis。吃不消就放数据库或文件缓存吧。
    mkstring
        12
    mkstring  
       May 27, 2017
    ElasticSearch
    Duolingo
        13
    Duolingo  
       May 27, 2017 via iPhone
    你不是被拉黑了,只是因为之前说过什么不该说的被降权了……
    denghongcai
        14
    denghongcai  
       May 27, 2017
    5M,百兆带宽跑满拉下来都得大于 500ms,真的有那么大的 String 要缓存吗?
    hoythan
        15
    hoythan  
    OP
       May 27, 2017
    @denghongcai 内容需要很多次数据查询才行,所以我打算直接一次查询缓存,其他的接口调用这些缓存结果.
    gouchaoer
        16
    gouchaoer  
       May 27, 2017 via Android
    存文件
    pubby
        17
    pubby  
       May 27, 2017 via Android
    gzip 压缩一下看看能不能降到 1M 以下再塞 memcache 里
    hoythan
        18
    hoythan  
    OP
       May 27, 2017
    @pubby 不行,尽量了 redis 考虑到内存占用问题,所以最终考虑用文件形式,又快又稳
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1007 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 47ms · UTC 19:17 · PVG 03:17 · LAX 12:17 · JFK 15:17
    ♥ Do have faith in what you're doing.