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

Web 开发对于站点名称这类读非常多,几乎不写的内容存储的最佳实践是存在配置文件/数据库,程序启动/发生变更时缓存在 Redis 里吗

  •  
  •   rv54ntjwfm3ug8 · 2022-04-03 02:45:26 +08:00 · 1486 次点击
    这是一个创建于 967 天前的主题,其中的信息可能已经有所发展或是发生改变。
    6 条回复    2022-04-05 01:08:55 +08:00
    bthulu
        1
    bthulu  
       2022-04-03 08:13:11 +08:00
    不写的内容你还存干嘛, 就放程序变量里就好了
    foam
        2
    foam  
       2022-04-03 11:13:33 +08:00 via Android
    半年不更新一次的,hard code 在代码里可以的。
    有更新列表需求的话,放数据库或配置中心,服务启动时加载到内存就行,隔段时间主动拉取更新下内存。
    Redis 我就觉得不是很有必要咯,除非你的 web service 不是常驻内存的,没有本地缓存(例如 php),那么是可以考虑 redis 。

    最后,最佳实践是要结合场景的。你的上下文信息不够。服务类型,请求量,服务部署规模和架构
    seakingii
        3
    seakingii  
       2022-04-03 11:50:43 +08:00
    比较好的实践,物理存储在数据库,并存一份在 REDIS 中

    然后再加个配置更改以及订阅通知服务

    简单的可以用 REDIS 来实现(可以订阅)

    任何配置一更新,所有依赖配置的网站服务程序马上收到通知,并做出反应
    opengps
        4
    opengps  
       2022-04-03 12:13:37 +08:00
    读远远大于写,缓存提速的效果非常大。
    至于加载时机,你可以是首次读取时候单条加载到缓存,也可以考虑启动时候全局加载到缓存
    使用缓存注意处理好维护逻辑,比如先更新数据库,在删除缓存,避免读取缓存旧数据导致的错误
    Red998
        5
    Red998  
       2022-04-04 20:33:25 +08:00
    数据不大建议启动的时候 load 到本地内存中、性能最高。Caffeine 就不错、存储、还是 LRU 策略、还是刷新缓存都不错。
    night98
        6
    night98  
       2022-04-05 01:08:55 +08:00
    这类在运行期 0 变更的通常直接扔内存,方案楼上都说的差不多了就不补充了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1301 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 23:53 · PVG 07:53 · LAX 15:53 · JFK 18:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.