laurent22/kache

支持多个驱动器的简单缓存系统。

1.0 2014-02-16 08:40 UTC

This package is not auto-updated.

Last update: 2024-09-28 14:44:21 UTC


README

一个支持多个驱动器并注重性能的简单缓存系统。在暴露的API和底层驱动器之间只有一个最小的包装,以使库尽可能快。

安装

要么检出代码并要求 src/Kache.php。或者使用Composer

"require": { "laurent22/kache": "1.*" }

设置

使用文件驱动器

Kache::setup(array(
	'driver' => 'file',
	'path' => '/path/to/cache_folder',
));

使用Redis驱动器

Kache::setup(array(
	'driver' => 'redis',
	'server' => array(
		'host' => '127.0.0.1',
		'port' => 6379,
		'dbindex' => 1,
	),
));

使用null驱动器(禁用缓存)

Kache::setup(array(
	'driver' => 'null',
));

使用

可以通过 Konfig::instance() 或便利方法 k() 访问类实例。例如

k()->set('somekey', 'somevalue', 120); // Cache for 2 minutes
var_dump(k()->get('somekey'));
$k()->delete('somekey');

您还可以使用 getOrRun() 方法,该方法将返回给定的键,如果它不存在,则执行以下操作

  • 运行提供的函数。
  • 将键设置为函数返回的值。这允许简化获取/设置缓存值时所需的样板代码。例如,以下代码
function getName() {
	$name = k()->get('name');
	if ($name !== null) return $name;
	$name = getNameFromDb();
	k()->set('name', $name, 600);
	return $name;
}

可以简化为这样

function getName() {
	return k()->getOrRun('name', function() {
		return getNameFromDb();
	}, 600);
}