【发布时间】:2020-12-08 13:07:33
【问题描述】:
一般来说,我有以下几种情况:
- 从数据库中获取产品及其相关数据
- 将获取的数据转换为 php 'product' 对象
- 在会话中缓存产品对象
缓存是只读的,即客户在网站上查看产品。
但是有像 getProductIdsByCategory($categoryId) 这样的调用,并且这些结果中的 productIds 也被缓存,每个用户,而不是使用我读过的全局缓存。
一个问题是,如果管理员方面的某个人添加了新产品并将其与类别相关联,那么在新会话开始之前,客户将不会在缓存的 getProductIdsByCategory 中看到新的 productId。
有没有办法在添加新产品时从服务器上的所有会话中清除例如 $_SESSION['x']?我不想销毁所有会话,因为客户将失去他们的登录等。
或者我应该将这些缓存的 productId 搜索移动到全局缓存中吗?
p.s 我正在使用自定义构建的缓存,而不是 memcached 或类似的。
谢谢
【问题讨论】:
标签: php session caching global