缓存类 Gene\Cache\Cache

缓存类 Gene\Cache\Cache

  • 介绍

    Gene\Cache\Cache 是gene框架的缓存操作类,支持方法级缓存、实时版本缓存更新等。实时版本缓存提出了缓存的实时更新解决方案;可以有效应对各类场景下的实时缓存问题。

    注入配置实例: ###

    
      //框架方法级缓存模块注入配置  
      $config->set("cache", [  
          'class' => '\Gene\Cache\Cache',  // 缓存类
          'params' => [[  
          'hook' => 'memcache',            //存储插件
          'sign' => 'demo:',               //方法级缓存key前缀
          'versionSign' => 'database:',    //版本缓存key前缀
              ]],  
          'instance' => false              //是否单例
      ]);  
  • cached ##

    定时方法级缓存,支持memcached、redis存储。

    参数:

    参数 类型 是否必填 注释
    object array 调用对象
    args array 对象调用传参
    ttl int 缓存过期时间

    返回值: 缓存数据。

    实例: ###

    
      $data = $this->cache->cached(["\Models\Admin\User", "getList"], [1, 10], 3600);  
  • localCached ##

    本地定时方法级缓存,支持apcu存储。

    参数:

    参数 类型 是否必填 注释
    object array 调用对象
    args array 对象调用传参
    ttl int 缓存过期时间

    返回值: 缓存数据。

    实例: ###

    
      $data = $this->cache->localCached(["\Models\Admin\User", "getList"], [1, 10], 3600);  
  • unsetCached ##

    定时方法级缓存数据过期,调用后将删除缓存数据。

    参数:

    参数 类型 是否必填 注释
    object array 调用对象
    args array 对象调用传参
    ttl int 缓存过期时间

    返回值: null

    实例: ###

    
      $this->cache->unsetCached(["\Models\Admin\User", "getList"], [1, 10], 3600);  
  • unsetLocalCached ##

    本地定时方法级缓存数据过期,调用后将删除缓存数据。

    参数:

    参数 类型 是否必填 注释
    object array 调用对象
    args array 对象调用传参
    ttl int 缓存过期时间

    返回值: null

    实例: ###

    
      $this->cache->unsetLocalCached(["\Models\Admin\User", "getList"], [1, 10], 3600);  
  • cachedVersion ##

    方法级实时版本缓存方法,支持memcached、redis存储;更新缓存有两种方法:一是程序更新版本号;二是使用syncClient数据实时同步中间件异步更新(https://github.com/sasou/syncClient);

    参数:

    参数 类型 是否必填 注释
    object array 调用对象
    args array 对象调用传参
    versionField array 版本缓存标志
    ttl int 缓存过期时间

    返回值: 缓存数据。

    实例: ###

    
      // 方法级实时版本缓存
      $data = $this->cache->cachedVersion(["\Models\Admin\Purview",'lists'], [$group_id], ['db.sys_purview' => null], 3600);  
    
      方法级实时缓存版本key更新  
      $this->cache->updateVersion(['db.sys_purview' => null]);  
  • localCachedVersion ##

    本地方法级实时版本缓存方法,支持apcu存储;更新缓存有两种方法:一是程序更新版本号;二是使用syncClient数据实时同步中间件异步更新(https://github.com/sasou/syncClient);

    参数:

    参数 类型 是否必填 注释
    object array 调用对象
    args array 对象调用传参
    versionField array 版本缓存标志
    ttl int 缓存过期时间
    mode boolean 是否严格模式

    严格模式下,缓存key的不一致会触发缓存更新,有一定的缓存击穿风险;非严格模式可以抵御缓存击穿;

    返回值: 缓存数据。

    实例: ###

    
      // 方法级实时版本缓存
      $data = $this->cache->localCachedVersion(["\Models\Admin\Purview",'lists'], [$group_id], ['db.sys_purview' => null], 3600);  
    
      方法级实时缓存版本key更新  
      $this->cache->updateVersion(['db.sys_purview' => null]);  
  • updateVersion ##

    更新缓存key。通常在数据更新时调用,执行后,相关key数据查询的缓存自动更新;

    参数:

    参数 类型 是否必填 注释
    versionField array 缓存key数组

    返回值: boolean

    实例: ###

    
      $this->cache->updateVersion(['db.sys_purview' => null]);