缓存你的数据

天气数据普遍具有时效性,对于不同的数据种类,时效性也有所不同。在你请求和风天气数据的时候,可以考虑设置弹性的、合理的缓存,这样可以有效降低服务器、带宽的消耗,加快用户的访问。

注意:缓存不是强制的要求,请认真阅读本文档,然后根据你的产品进行充分的评估,否则可能会对你的产品造成严重错误。如果你不确定,或者无法处理所有应用场景,请不要使用缓存。

警告:你不能缓存、提取、批量存储GeoAPI中提供的所有数据,这将违反我们的服务条款或侵犯版权,这些数据的版权所有者可能会对你采取法律行动。

合理性

对于时效性较强的数据,你不应该设置过长的缓存时间,例如实时天气,一天的温度变化较多,如果你设置超过了1小时的缓存,有可能造成用户在上午甚至中午查看到的是早上较为凉爽的气温。

提示:缓存数据与原数据的间隔时间最多相差2倍,例如你的缓存时间与和风天气的更新频率均为60分钟,和风天气在15:00发布了新的数据,用户从15:59开始访问你的产品,在16:59的时候用户通过你的缓存获取依然是15:00发布的原数据,在这种情况下,缓存数据与原数据的间隔时间达到了119分钟。

弹性

缓存应该是弹性的,你不应该为所有数据或在所有时间范围内设置相同的缓存策略,否则你的程序可能出现严重错误或崩溃,因此你需要特别注意:

  • 跨小时和跨天的场景,否则用户可能无法查看到完整的天气数据,严重情况可能导致你的程序错误。

    例如:对于逐天预报,用户在23:00使用了你的产品查看了7天预报,在第二天00:00之后,如果你不刷新缓存,用户看到的7天预报的第一天将变成前一天或者只剩下6天预报,极端情况下,你的程序还可能报错。

  • 夏令时对缓存的影响,避免夏令时开始和结束的时刻发生时间显示错误的问题。
  • 如果你在服务端采用缓存,需要注意时区的问题,每个国家会有不同的时区,你设置的弹性缓存应该确保在不同时区都可以正常工作。

清除缓存

你应该为你的程序设置一种可以立即清除缓存的功能,当出现错误的时候,可以通过清除缓存来实时的解决问题,而不需要重新发布新版本程序。

对于不同数据设置的缓存时间,我们推荐如下,当然更少的缓存时间可以获得更加及时的数据响应,还包括我们额外对数据进行的修复和优化。

注意:当已发布的数据需要进行修复时,我们会增加更新次数和更新频率。

注意:推荐的缓存时间并非适用于所有场景和需求,你应该根据你的产品进行评估。和风天气的数据发布频率也有可能会变更,我们会更新文档。

数据类型 推荐的缓存时间 和风天气的更新频率
实时天气 10-30分钟 5-10分钟
逐小时天气预报 30-60分钟 60分钟
逐天天气预报 1-6小时 60分钟
天气预警 5-20分钟 3分钟
天气指数 6-12小时 60分钟
分钟降水 5-10分钟 5分钟
实时空气质量 30-60分钟 30-60分钟
空气质量逐天预报 8-12小时 1-6小时
潮汐和潮流 8-12小时 8小时
台风 活跃期 20分钟
非活跃期60分钟
10-60分钟
太阳辐照 6小时 3-6小时

限制

你不能缓存、提取、批量存储GeoAPI中提供的所有数据,这将违反我们的使用限制服务条款

GeoAPI中提供的数据内容来源于多个地理信息服务商,他们拥有不同的版权许可,大多数服务商(几乎是所有)许可你实时的使用,但禁止你将这些数据进行任何形式的存储,否则你可能会面临严重的法律风险。