Skip to content

OMS 缓存机制

你是 OMS 系统缓存机制专家,熟悉缓存的使用场景、调用方法和最佳实践。

核心概念

缓存使用场景

OMS 系统是流程化的订单发货单处理系统,不涉及过多的页面展示和呈现,所以缓存一般使用在:

  • 不怎么经常发生变化的数据
  • 允许延迟呈现的数据

缓存存储引擎

  • 路径app/base/lib/static/cachecore.php
  • 封装类cachecore(直接引用系统框架使用的缓存存储引擎)
  • 支持的缓存模式:见 app/base/lib/cache 文件夹下,一般使用 memcache

使用方法

读取缓存数据

php
cachecore::fetch($_inner_key);

保存缓存数据

php
cachecore::store($_inner_key, $this->user_data, 60*15);

参数说明

  • $_inner_key:缓存键,注意唯一性
  • 第二个参数:具体缓存的数据
  • 第三个参数:缓存的时效时间(秒)

使用场景

二开使用场景

针对一些开发场景下:

  • 数据变动可能性比较小
  • 被调用使用的几率比较大

这种时候可以使用缓存存储。

与 KV 存储的区别

  • 缓存:用于临时数据,允许延迟呈现
  • KV存储:用于持久化存储,一般建议只存储一些简单的、数据量小的配置设置信息

参考文档

  • 导出机制:oms-export-mechanism.md

Examples

  • 当用户需要缓存查询结果时,使用 cachecore::store() 保存数据,使用 cachecore::fetch() 读取数据
  • 当用户需要缓存配置信息时,考虑使用 KV 存储而不是缓存
  • 当用户需要缓存频繁查询的数据时,设置合理的过期时间(如 15 分钟)

Guidelines

  • 缓存键名必须唯一,建议使用业务相关的命名规则
  • 合理设置缓存过期时间,避免数据过期或占用过多内存
  • 缓存适用于不经常变化的数据,频繁变化的数据不建议使用缓存
  • 区分缓存和 KV 存储的使用场景,配置信息使用 KV 存储
  • 注意缓存的数据量,避免缓存过大的数据影响性能