我正在创建一个以 RESTful API 为中心的 Web 应用程序。一旦用户登录,他们将收到一个会话 ID 和登录密钥,用于访问他们的数据,直到他们的会话过期。如果会话保存在内存中,Web 应用程序(可能还有移动应用程序)将在每次页面加载时调用 API 以获取用户信息。我正在尽我所能优化这个 API 调用,我想知道缓存这些信息是否有意义。
每个包含用户数据的表都包含一个更新的时间戳(在每次 Postgres 更新时触发)。所以我可以修改 API 以接受可选cache_timestamp
参数。API 将首先检查是否有任何用户数据的表自该时间戳以来已被修改。如果有,则返回更新后的用户数据;如果不是,它将返回 304 not modified 并且应用程序将使用缓存。
我的问题是哪些信息太敏感而无法保存在内存中(使用 PHP 会话)。目前,这些信息包含个人资料(姓名、公司等)、联系人(电子邮件、电话)、设置(时事通讯、通知)和付款信息(计划、试用和引用 Stripe 的客户 ID)。
我认为唯一会处于边缘的是支付信息,但除非我的 API 密钥被泄露,否则他们不应该能够从 Stripe 访问任何数据。