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

如果做一个 API 缓存的服务器

  •  
  •   greenlake · 2019-04-16 21:35:06 +08:00 · 2720 次点击
    这是一个创建于 2047 天前的主题,其中的信息可能已经有所发展或是发生改变。
    平时会用到一些 api,基本上就是 get restful 的 json 数据,这些数据基本上是静态的,一天一换就可以了,怎么简单架设一个自己的服务器,然后缓存这个 api 的数据,这样我的 app 就可以不停地访问自己的服务器而不用再收费了
    22 条回复    2019-04-17 10:30:01 +08:00
    MonoLogueChi
        1
    MonoLogueChi  
       2019-04-16 23:17:40 +08:00 via Android   ❤️ 1
    搞个带缓存的反向代理?
    kangzai50136
        2
    kangzai50136  
       2019-04-16 23:20:12 +08:00 via Android
    访问接口然后存进数据库咯,虽然有点麻烦。
    newmind
        3
    newmind  
       2019-04-16 23:24:28 +08:00 via Android
    cdn?
    putaozhenhaochi
        4
    putaozhenhaochi  
       2019-04-16 23:54:50 +08:00 via Android
    自己写个后端中转加缓存
    FakeLeung
        5
    FakeLeung  
       2019-04-17 00:09:53 +08:00   ❤️ 1
    自己服务器请求 + redis。

    应该可行。
    greenlake
        6
    greenlake  
    OP
       2019-04-17 02:04:24 +08:00 via iPhone
    看了大家的反馈还是没明白,其实就是先访问别人的 API,把 json 保存下来,然后自己的 app 的访问就直接下载这个保存的 json 文件,关键是用什么语言和框架?
    WordTian
        7
    WordTian  
       2019-04-17 02:14:10 +08:00 via Android   ❤️ 1
    楼主是没用过 redis 吗?
    建议以 redis 缓存 为关键字进行搜索
    night98
        8
    night98  
       2019-04-17 02:41:17 +08:00
    这也能用上 redis ?服务器一次性轮询完直接扔 map 里,app 访问直接从 map 拿数据,搞定。
    greenlake
        9
    greenlake  
    OP
       2019-04-17 02:47:02 +08:00
    @night98 什么是 map ?谢谢
    2589595915
        10
    2589595915  
       2019-04-17 04:03:06 +08:00 via iPhone   ❤️ 1
    楼上以为楼主是程序员,然而并不是。楼主需要的是整个解决方案。
    lzxgh621
        11
    lzxgh621  
       2019-04-17 05:38:29 +08:00 via Android
    啥语言框架都不用啊 系统定时任务跑个脚本更新缓存的 json 文件不就完了
    Vogan
        12
    Vogan  
       2019-04-17 05:39:51 +08:00 via iPhone
    放进内存变量里
    greenlake
        13
    greenlake  
    OP
       2019-04-17 06:03:17 +08:00
    @lzxgh621 感觉这个最简单粗暴直接
    xiaoz
        14
    xiaoz  
       2019-04-17 07:52:41 +08:00 via Android   ❤️ 1
    可以的,我就这样干,把数据缓存到 redis,几天更新一次。
    k8ser
        15
    k8ser  
       2019-04-17 08:32:36 +08:00   ❤️ 1
    做过一次,数据库都懒的用,直接放 json 文件了
    greenlake
        16
    greenlake  
    OP
       2019-04-17 08:34:03 +08:00 via iPhone
    @k8ser 这个也是用 redis 吗?
    opengps
        17
    opengps  
       2019-04-17 08:34:16 +08:00 via Android
    直接套用免费 cdn 就可以了,勾选那个参数缓存
    k8ser
        18
    k8ser  
       2019-04-17 08:35:30 +08:00
    没用数据库,我当时需求简单,直接将数据请求下来写到 json 文件了,然后隔多长时间去刷新这个 json 文件,请求接口直接读 json 文件就好
    gimp
        19
    gimp  
       2019-04-17 08:45:19 +08:00
    你的 app 请求你数据库里的内容,然后写个定时脚本访问第三方 API 更新数据库。
    jookr
        20
    jookr  
       2019-04-17 10:26:04 +08:00   ❤️ 1
    在 nginx 做缓存,请求都不需要进到后端直接返回结果
    https://jybb.me/nginx-fastcgi_cache
    gaius
        21
    gaius  
       2019-04-17 10:28:24 +08:00
    java 的话用应用缓存就行,guava cache 之类的。
    ipwx
        22
    ipwx  
       2019-04-17 10:30:01 +08:00   ❤️ 1
    你这个想法,MediaWiki 人家已经生产环境用了很久了。

    https://www.mediawiki.org/wiki/RESTBase
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1595 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 17:00 · PVG 01:00 · LAX 09:00 · JFK 12:00
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.