think-cache

think-cache เป็นส่วนประกอบที่แยกออกมาจาก thinkphp framework และได้มีการเพิ่มฟังก์ชัน connection pool พร้อมการสนับสนุนโดยอัตโนมัติสำหรับทั้งสภาพแวดล้อมที่ใช้โครงสร้าง (coroutine) และไม่ใช้โครงสร้าง (non-coroutine)

注意
ปัจจุบันเอกสารนี้เป็นเวอร์ชัน webman v2 หากคุณกำลังใช้เวอร์ชัน webman v1 โปรดดูที่ v1版本手册

安装

composer require -W webman/think-cache

หลังจากติดตั้งแล้วต้องทำการ restart (reload จะไม่มีผล)

配置文件

ไฟล์การตั้งค่าสำหรับ config/think-cache.php

使用

  <?php
  namespace app\controller;

  use support\Request;
  use support\think\Cache;

  class UserController
  {
      public function db(Request $request)
      {
          $key = 'test_key';
          Cache::set($key, rand());
          return response(Cache::get($key));
      }
  }

提供的接口

// 设置缓存
Cache::set('val','value',600);
// 判断缓存是否设置
Cache::has('val');
// 获取缓存
Cache::get('val');
// 删除缓存
Cache::delete('val');
// 清除缓存
Cache::clear();
// 读取并删除缓存
Cache::pull('val');
// 不存在则写入
Cache::remember('val',10);

// 对于数值类型的缓存数据可以使用
// 缓存增+1
Cache::inc('val');
// 缓存增+5
Cache::inc('val',5);
// 缓存减1
Cache::dec('val');
// 缓存减5
Cache::dec('val',5);

// 使用缓存标签
Cache::tag('tag_name')->set('val','value',600);
// 删除某个标签下的缓存数据
Cache::tag('tag_name')->clear();
// 支持指定多个标签
Cache::tag(['tag1','tag2'])->set('val2','value',600);
// 删除多个标签下的缓存数据
Cache::tag(['tag1','tag2'])->clear();

// 使用多种缓存类型
$redis = Cache::store('redis');

$redis->set('var','value',600);
$redis->get('var');