# 社媒接口的结果该缓存多久，才能少花冤枉钱？

> 博主资料、小红书笔记详情、评论、微博热搜各自适合缓存多久，按次计费时各能省下多少，附一个十几行的 Python 缓存。

网页版：https://okdata.online/zh/answers/cache-social-media-api-results/

**简短回答：**按数据变化快慢来定：博主资料缓存一天到一周；帖子正文可以一直留着，只在需要时刷新互动数；发布超过一周的帖子的评论缓存几天；热搜不缓存，每次快照单独存一条记录。省得最多的是单对象接口：一个看板每天被打开 50 次、每次都重新拉 200 篇小红书笔记，在 okdata 上一天要 $200.00；缓存一天只要 $4.00。

为同一份数据付两次钱，通常是不小心造成的：看板每次刷新页面都调一次接口，夜间任务把所有东西重拉一遍，做分析时反复重跑 notebook。在调用前面加一层小缓存，这三种情况都能解决。真正要决定的只有一件事：每类数据放多久再重新取。

## 适合社媒数据的缓存时长

| 数据 | 接口 | 变化速度 | 建议缓存 |
|---|---|---|---|
| 博主资料、粉丝数 | [抖音账号信息](/zh/apis/douyin/users/get/) | 慢 | 1 到 7 天 |
| 帖子正文和图片 | [小红书笔记详情](/zh/apis/xiaohongshu/notes/get/) | 几乎不变 | 一直保留 |
| 帖子互动数 | 同一个接口 | 刚发时快，之后变慢 | 第一周按小时，之后按天 |
| 发布超过一周的帖子的评论 | [TikTok 视频评论](/zh/apis/tiktok/videos/comments/list/) | 慢 | 几天；只复查第一页 |
| 热搜榜 | [微博热搜](/zh/apis/weibo/trends/list/) | 几小时就变 | 不缓存，每次快照单独存 |
| 搜索结果 | 按关键词 | 看关键词热度 | 等于你的监测间隔 |

单价决定了缓存在哪里最值钱。[小红书笔记详情](/zh/apis/xiaohongshu/notes/get/)每篇 $0.02，重复查 1000 次就白花 $20.00。抖音账号信息每次 $0.002，这类便宜的查询做缓存，还能让大任务少撞频率限制。

## 十几行的缓存

```python
import hashlib, json, os, pathlib, time, requests

H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}
CACHE = pathlib.Path(".okcache"); CACHE.mkdir(exist_ok=True)

def cached(path, ttl_seconds, **params):
    key = hashlib.sha256(json.dumps([path, params], sort_keys=True).encode()).hexdigest()
    f = CACHE / key
    if f.exists() and time.time() - f.stat().st_mtime < ttl_seconds:
        return json.loads(f.read_text())
    body = requests.get(f"https://api.okdata.online{path}", headers=H, params=params, timeout=60).json()
    if body["code"] == "ok":
        f.write_text(json.dumps(body, ensure_ascii=False))
    return body

profile = cached("/v1/douyin/users/get", 3 * 86400, id="MS4wLjABAAAA...")
```

只缓存成功的返回，错误不会被缓存住；何况错误本来就不收费。

## 两样东西不能当成你的缓存

- **幂等键。** 24 小时内用同一个 `Idempotency-Key` 重发同一个请求，会免费重放保存的结果。它保护的是重试，不是不同请求之间的通用缓存。
- **`meta.cached`。** 服务端可能用自己的短期缓存回答，并在返回里注明。别指望靠它省钱。

只为新内容付费的监测搭法，见[竞品监测](/zh/solutions/competitor-monitoring/)。

## 用到的接口

- [抖音账号信息](https://okdata.online/zh/apis/douyin/users/get/) `douyin.users.get`：$0.002/次
- [小红书笔记详情](https://okdata.online/zh/apis/xiaohongshu/notes/get/) `xiaohongshu.notes.get`：$0.02/次
- [微博热搜](https://okdata.online/zh/apis/weibo/trends/list/) `weibo.trends.list`：$0.002/次 · 每页约 50 条榜单
- [TikTok 视频评论](https://okdata.online/zh/apis/tiktok/videos/comments/list/) `tiktok.videos.comments.list`：$0.002/次 · 每页约 50 条评论

更新于 2026-11-12
