smart-php / super-cache

一个简单的PHP缓存机制,比Redis、Memcache、APC在PHP & HHVM中的缓存速度快500倍

0.0.9 2021-07-11 07:59 UTC

This package is auto-updated.

Last update: 2024-09-18 18:23:02 UTC


README

一个简单的PHP缓存机制,它比其他PHP缓存机制(如Redis、Memcache、APC)在PHP & HHVM中快200倍。SuperCache使用常规文件系统来存储值。这种方法比Redis/Memcache更快,因为所有这些都需要序列化和反序列化对象。

GitHub tag

安装

通过Composer

composer require smart-php/super-cache

基本用法

<?php
require __DIR__.'/vendor/autoload.php';
use SuperCache\SuperCache as sCache;

//Saving cache value with a key
// sCache::cache('<key>')->set('<value>');
sCache::cache('myKey')->set('Key_value');

//Retrieving cache value with a key
echo sCache::cache('myKey')->get();
?>

缓存文件夹

默认情况下,缓存将保存在tmp文件夹中。请确保tmp文件夹具有写入权限。您可以为缓存设置自定义文件夹

sCache::setPath('youfolder/tempfolder/');

define('SuperCache_PATH','youfolder/tempfolder/');

高级选项

锁定

锁定您的数据为只读,以防止数据被覆盖。

sCache::cache('myKey')->set('my_value')->lock();
//setting new value
sCache::cache('myKey')->set('new_value');
echo sCache::cache('myKey')->get(); //output : my_value
//unlocking
sCache::cache('myKey')->unlock()->set('new_value');
echo sCache::cache('myKey')->get(); //output : new_value
选项
//options
sCache::cache('myKey')->set('my_value')->options([
    'expiry'    =>  time()+600, //time to expire
    'lock'      =>  true    //alternative method to lock or unlock
    'custom'    =>  'your customer attribute value'
]);

//isValid (To check for a valid key or to check whether it has expired or not)
sCache::cache('myKey')->isValid(); //true or false

//To get all option values
print_r(sCache::cache('myKey')->getOptions()); //array

//destroy
sCache::cache('myKey')->destroy();

//clearAll (Clear all cache values)
sCache::cache('myKey')->clearAll();

缓存您的类

您可以将任何类缓存到super cache中。要绑定数据,您需要使用带有use State的trait类State,或者您可以通过自定义的set_state来实现。

use SuperCache\SuperCache as sCache;
use SuperCache\State as State;

sCache::setPath('youCacheLocation');

Class MyClass 
{
    /**
     * This trait class will bind data from cache to your class
     */
    use State;

    private $firstName;

    private $lastName;

    public function setName($firstName, $lastName)
    {
        $this->firstName = $firstName;
        $this->lastName = $lastName;
    }

    public function getName()
    {
        return $this->firstName . " ". $this->lastName;
    }
}

// Creating Object of your class
$myObject = new MyClass;
$myObject->setName("John", "Doe");

// Saving your object in SuperCache
sCache::cache('myObject')->set($myObject);

// Retrieving your object from Cache 
$cacheObject = sCache::cache('myObject')->get();
echo $myObject->getName();

许可

MIT许可证(MIT)。有关更多信息,请参阅许可证文件