一般来说,我有以下情况:
- 从数据库中获取产品及其相关数据
- 将获取的数据转换为 php 'product' 对象
- 在会话中缓存产品对象
缓存是只读的,即客户在网站上查看产品。
但是有这样的调用,getProductIdsByCategory($categoryId)
并且这些结果中的 productIds 也被缓存,每个用户,而不是使用我读过的全局缓存。
getProductIdsByCategory
一个问题是,如果管理员端的某个人添加了新产品并将其与类别相关联,那么在新会话开始之前,客户将不会在缓存中出现新的 productId 。
添加新产品时,有没有办法$_SESSION['x']
从服务器上的所有会话中清除?我不想破坏所有会话,因为客户将失去他们的登录等。
或者我应该将这些缓存的 productId 搜索移动到全局缓存吗?
ps 我使用的是自定义构建的缓存,而不是 memcached 或类似的。
谢谢