V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
amosmz
V2EX  ›  问与答

想问下,做项目的时候,什么情况下会意识到需要用 redis?

  •  
  •   amosmz · 2019-05-07 17:27:51 +08:00 · 5332 次点击
    这是一个创建于 2026 天前的主题,其中的信息可能已经有所发展或是发生改变。

    小白一枚,接触 redis、memcached 比较少。

    假设这个项目刚起步,什么情况下会意识到这个功能必须使用缓存。

    网上的教程挺多的,我看到文章点击数的时候需要用 redis 会方便多,但是项目刚起步的情况下,我就要直接意识到使用 redis 吗?

    对这方面的了解太少了,看以前的项目上,大腿已经搭好了这些环境,所以不清楚什么时候需要使用。

    不知道我该在什么样的功能去使用这些缓存,有没有大腿介绍下?

    21 条回复    2019-05-08 16:30:45 +08:00
    Solace202
        1
    Solace202  
       2019-05-07 18:01:01 +08:00
    这个问题真心问的好,前排等大佬回答
    m240655880
        2
    m240655880  
       2019-05-07 18:02:17 +08:00
    前排等大佬回复
    Yourshell
        3
    Yourshell  
       2019-05-07 18:02:26 +08:00
    高并发?
    HuasLeung
        4
    HuasLeung  
       2019-05-07 18:11:36 +08:00 via Android
    cpu 压力大、io 操作频繁、关系型数据库数据存储方式不那么给力…
    wizzer
        5
    wizzer  
       2019-05-07 18:19:52 +08:00   ❤️ 9
    1、访问频繁、实时性要求不高,但 sql 查询或 io 比较耗时的数据,如仪表盘、Session ;
    2、一些需要超时失效的数据,比如验证码、Token、Session 等;
    3、需要缓冲的数据,比如入列前的订单 ID、队列处理完之后从缓存里取会很方便;
    4、当临时数据库用,不需要永久存储,如计算出的临时值,用完丢弃;
    5、……
    nimrc
        6
    nimrc  
       2019-05-07 18:23:42 +08:00
    分布式
    mooncakejs
        7
    mooncakejs  
       2019-05-07 18:43:38 +08:00
    kv,缓存,去重,都可以用 redis
    shylockhg
        8
    shylockhg  
       2019-05-07 19:17:58 +08:00
    io 负载过重
    sunjourney
        9
    sunjourney  
       2019-05-07 19:41:11 +08:00
    补充:需要过期的数据、分步式锁
    falsemask
        10
    falsemask  
       2019-05-07 20:40:48 +08:00
    比如微博的点赞数和评论数就非常适合用 redis 来存储,访问非常频繁,实时性和准确性要求都不高,微博早期是用 redis 来做存储的
    duanxianze
        11
    duanxianze  
       2019-05-07 21:27:36 +08:00
    对我来说 使用 redis 存储 session 或者 token 时最重要的 可以随意的分布式负载均衡
    Leigg
        12
    Leigg  
       2019-05-07 21:40:00 +08:00 via iPhone
    用的比较多的,缓存,队列。
    K0ala
        13
    K0ala  
       2019-05-07 22:13:22 +08:00 via Android
    缓存,去重,锁,热数据读取,计数。。。。
    2kCS5c0b0ITXE5k2
        14
    2kCS5c0b0ITXE5k2  
       2019-05-08 01:38:13 +08:00
    经常需要读,但不用经常写的数据...
    shiny
        15
    shiny  
       2019-05-08 05:38:06 +08:00   ❤️ 3
    使用之前先考虑下项目自身的情况。很多时候是每天个位数的访问量,却操着百万日活的心。系统多优化,工作 996。
    所以,个人在以下两种情况会考虑是不是真的需要 Redis:
    1. 扛不住了
    2. Redis 去实现真方便,省事

    若无必要,勿增实体
    chinvo
        16
    chinvo  
       2019-05-08 07:55:08 +08:00 via iPhone
    缓存、暂存、session、简易队列
    bokchoys
        17
    bokchoys  
       2019-05-08 07:58:48 +08:00 via iPhone
    @shiny #15 其实楼主还是抱着学习的态度的
    zouzou
        18
    zouzou  
       2019-05-08 08:02:46 +08:00
    多个服务器共享数据优先使用 redis。
    不知道什么情况下需要用 redis,那就先用哈希表实现功能,后期再用 redis。
    DovaKeen
        19
    DovaKeen  
       2019-05-08 10:46:08 +08:00
    我觉得如果只有单个服务器的话(所有程序都在一个服务器上),并且以后不准备再拓展了,上 redis 也不是特别好的选择,也许还不如 ConcurrentHashMap …
    jzds001
        20
    jzds001  
       2019-05-08 10:52:37 +08:00
    学习一个
    shiny
        21
    shiny  
       2019-05-08 16:30:45 +08:00
    @bokchoys 也只是从另外角度提供个提醒。技术角度的话,这里人才太多,我说的肯定没大家好。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1232 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:56 · PVG 07:56 · LAX 15:56 · JFK 18:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.