99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

ThinkJS Cache(緩存)

2021-09-17 10:26 更新

在項(xiàng)目中,合理使用緩存對(duì)性能有很大的幫助。ThinkJS 提供了多種的緩存方式,包括:內(nèi)存緩存、文件緩存、Memcache 緩存、Redis 緩存等。

緩存類型

系統(tǒng)默認(rèn)支持的緩存類型如下:

  • base 內(nèi)存緩存
  • file 文件緩存
  • memcache Memcache 緩存
  • redis Redis 緩存

如果使用 memcache 緩存,需要設(shè)置 Memcache 配置信息,見 配置。

如果使用 redis 緩存,需要設(shè)置 Redis 配置信息,見 配置。

緩存配置

默認(rèn)緩存配置如下,可以在配置文件 src/common/config/cache.js 中進(jìn)行修改:

export default {
  type: "file", //緩存類型
  timeout: 6 * 3600, //失效時(shí)間,默認(rèn)為 6 個(gè)小時(shí)
  prefix: "thinkjs_",
  path: runtimePrefix + "/cache",
  path_depth: 2,
  file_ext: ".json"
};

其中 prefix 在 memcache 和 redis 類型中使用,存儲(chǔ)時(shí)會(huì)將緩存 key + prefix 作為新的 key 來(lái)存儲(chǔ),用于防止跟其他地方使用的緩存 key 沖突。如果不想設(shè)置 prefix,可以將 prefix 設(shè)置為空字符串,如:

export default {
  prefix: "" //將緩存 key 前綴設(shè)置為空
}

其中 path,path_depth 和 file_ext 配置在 file 類型中使用:

  • path 緩存文件的根目錄
  • path_depth 緩存文件生成子目錄的深度
  • file_ext 緩存文件的擴(kuò)展名

使用緩存

可以通過(guò) think.cache 方法對(duì)緩存進(jìn)行增刪改查操作,具體請(qǐng)見 API -> think。

如果當(dāng)前使用場(chǎng)景在繼承自 think.http.base 的類下,可以通過(guò) this.cache 方法來(lái)操作緩存,具體請(qǐng)見 API -> think.http.base

擴(kuò)展緩存

可以通過(guò)下面的命令創(chuàng)建一個(gè)名為 foo 緩存類:

thinkjs adapter cache/foo

執(zhí)行完成后,會(huì)創(chuàng)建文件 src/common/adapter/cache/foo.js。擴(kuò)展緩存類需要實(shí)現(xiàn)如下的方法:

export default class extends think.cache.base {
  /**
   * 初始化方法
   * @param  {Object} options []
   * @return {}         []
   */
  init(options){
    //set gc type & start gc
    this.gcType = "cache_foo";
    think.gc(this);
  }
  /**
   * 獲取緩存
   * @param  {String} name []
   * @return {Promise}      []
   */
  get(name){

  }
  /**
   * 設(shè)置緩存
   * @param {String} name    []
   * @param {Mixed} value   []
   * @param {Number} timeout []
   * @return {Promise}
   */
  set(name, value, timeout){

  }
  /**
   * 刪除緩存
   * @param  {String} name []
   * @return {Promise}      []
   */
  delete(name){

  }
  /**
   * 緩存垃圾回收
   * @return {Promise} []
   */
  gc(){

  }
}

框架里的 Cache 實(shí)現(xiàn)請(qǐng)見 https://github.com/75team/thinkjs/tree/master/src/adapter/cache。

使用第三方緩存 Adapter

如何使用第三方的緩存 Adapter 請(qǐng)參見 Adapter -> 介紹

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)