cache, 异步,基于Promise的ReactPHP缓存接口

分享于 

6分钟阅读

GitHub

  繁體 雙語
React async caching
  • 源代码名称:cache
  • 源代码网址:http://www.github.com/reactphp/cache
  • cache源代码文档
  • cache源代码下载
  • Git URL:
    git://www.github.com/reactphp/cache.git
    Git Clone代码到本地:
    git clone http://www.github.com/reactphp/cache
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/reactphp/cache
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    缓存组件

    Build StatusCode Climate

    异步,承诺用于ReactPHP的高速缓存接口。

    高速缓存组件提供了一个承诺 -based CacheInterface 和一个内存ArrayCache 实现,该接口实现了该组件。 这允许消费者对接口和第三方进行输入,以提供替代实现。

    目录

    用法

    CacheInterface

    CacheInterface 描述了这个组件的主要接口。 这允许消费者对接口和第三方进行输入,以提供替代实现。

    ( )

    iPhone 7 还没出来,我们已经在iPhone上获取细节 8,或者不管是想到下一步。 get(string $key, mixed $default = null): PromiseInterfae 方法可以用于从缓存中检索项。

    当没有找到任何项目时,这里方法将用缓存的值解析,或者在发生错误时使用给定的$default 值。

    $cache->get('foo')->then('var_dump');

    这里示例获取键 foo的值并将它的传递给 var_dump 函数。 你可以使用任何由承诺的组合提供。

    ( )
    $cache->set('foo', 'bar');

    本示例最终将密钥 foo的值设置为 bar。 如果它已经存在,则重写它。 提供保证什么时候设置缓存值的保证返回承诺。 承诺将在 true 成功或者 false 出错时完成。 如果缓存实现必须通过网络存储它,可能需要一段时间。

    删除( )
    $cache->remove('foo');

    本示例最终从缓存中删除密钥 fooset 一样,这可以能不会立即发生,并返回一个保证,以保证项是否已经从缓存中移除。

    ArrayCache

    ArrayCache 提供了 CacheInterface 接口的内存实现。

    $cache=newArrayCache();$cache->set('foo', 'bar');

    它的构造函数接受一个可选的?int $limit 参数来限制存储在LRU缓存中的最大条目数。 如果将更多条目添加到这里实例,它将自动处理最近使用的( LRU )的删除。

    例如这里代码段将覆盖第一个值,并且只存储最后两个条目:

    $cache=newArrayCache(2);$cache->set('foo', '1');$cache->set('bar', '2');$cache->set('baz', '3');

    常用用法

    回退

    高速缓存的常见用途是尝试获取缓存值,并在未找到缓存的情况下从原始数据源检索它。 下面是一个示例:

    $cache->get('foo')->then(function ($result) {if ($result===null) {return getFooFromDb(); }return$result; })->then('var_dump');

    首先尝试检索 foo的值。 当结果值为空时,将注册一个回调函数,该函数将调用 getFooFromDbgetFooFromDb 是一个函数( 可以是任何PHP可以调用的),如果缓存中不存在该键,则调用它。

    getFooFromDb 可以通过从数据库( 或者任何其他数据源) 返回实际值的promise来处理丢失的键。 因这里,这个链会正确地倒回来,并在两种情况下提供价值。

    回退获取和设置

    要在回收from示例上展开,通常要在从数据源获取数据后设置缓存上的值。

    $cache->get('foo')->then(function ($result) {if ($result===null) {return$this->getAndCacheFooFromDb(); }return$result; })->then('var_dump');publicfunctiongetAndCacheFooFromDb(){return$this->db->get('foo')->then(array($this, 'cacheFooFromDb'));}publicfunctioncacheFooFromDb($foo){$this->cache->set('foo', $foo);return$foo;}

    通过使用链接,如果从数据库中提取值,则可以很容易地缓存该值。

    安装

    安装这个库的推荐方法是通过 Composer 新到 Composer

    这将安装最新的受支持版本:

    $ composer require react/cache:^0.4.2

    有关版本升级的详细信息,请参阅变更日志

    这个项目旨在在任何平台上运行,因此不需要任何PHP扩展,支持通过当前 PHP 7 + 和HHVM运行在遗留 PHP 5.3上。 我们强烈推荐使用 PHP + 这个项目。

    测试

    你必须先克隆这个 repo,然后通过安装所有依赖项:

    $ composer install

    要运行测试套件,请转到项目 root 并运行:

    $ php vendor/bin/phpunit

    许可证

    麻省理工学院,请参见许可证文件。


    INT  BASE  react  接口  async  CAC  
    相关文章