smart-php / super-cache
一个简单的PHP缓存机制,比Redis、Memcache、APC在PHP & HHVM中的缓存速度快500倍
0.0.9
2021-07-11 07:59 UTC
Requires
- php: >=5.3.0
README
一个简单的PHP缓存机制,它比其他PHP缓存机制(如Redis、Memcache、APC)在PHP & HHVM中快200倍。SuperCache使用常规文件系统来存储值。这种方法比Redis/Memcache更快,因为所有这些都需要序列化和反序列化对象。
安装
通过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)。有关更多信息,请参阅许可证文件。