comporu / cache
提供多种适配器的缓存接口,支持Apc, Apcu, File, Mongo, Memcache, Memcached, Mysql, Mongo, Redis。新的适配器即将到来!
Requires
- php: >=5.3.0
Requires (Dev)
- predis/predis: *
- raulfraile/ladybug: v0.7
- symfony/yaml: dev-master
This package is auto-updated.
Last update: 2024-08-28 02:00:45 UTC
README
这是一个简单的缓存库。通过管理器等实现不同适配器,您可以使用并轻松更改。
安装
使用Composer
最佳安装方式是通过packagist,在您的项目composer.json的require中包含desarrolla2/cache
。
"require": { // ... "desarrolla2/cache": "~2.0" }
不使用Composer
您也可以从[Github] (https://github.com/desarrolla2/Cache)下载它,但未提供自动加载器,因此您需要使用自己的PSR-0兼容自动加载器进行注册。
使用
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\NotCache; $cache = new Cache(new NotCache()); $cache->set('key', 'myKeyValue', 3600); // later ... echo $cache->get('key');
适配器
Apcu
如果您系统中有APC缓存,请使用它。
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\Apcu; $adapter = new Apcu(); $adapter->setOption('ttl', 3600); $cache = new Cache($adapter);
File
如果您系统中没有其他缓存系统,或者您希望使代码更具可移植性,请使用它。
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\File; $cacheDir = '/tmp'; $adapter = new File($cacheDir); $adapter->setOption('ttl', 3600); $cache = new Cache($adapter);
Memcache
如果您系统中提供memcache,请使用它。
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\Memcache; $adapter = new Memcache(); $cache = new Cache($adapter);
您可以在之前配置您的连接。
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\Memcache; use \Memcache as Backend $backend = new Backend(); // configure it here $cache = new Cache(new Memcache($backend));
Memcached
与Memcache适配器相同。
内存
这是最快的缓存类型,因为元素存储在内存中。缓存内存非常不稳定,当进程结束时会被移除。此外,它不会在不同进程之间共享。
内存缓存有一个“limit”选项,限制缓存中的最大项目数。
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\Memory; $adapter = new Memory(); $adapter->setOption('ttl', 3600); $adapter->setOption('limit', 200); $cache = new Cache($adapter);
Mongo
使用Mongo数据库存储缓存。需要(旧版) mongo 扩展或mongodb/mongodb库。
您可以将数据库或集合对象传递给构造函数。如果传递了数据库对象,则使用该DB中的items集合。
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\Mongo; $client = new MongoClient($dsn); $database = $client->selectDatabase($dbname); $adapter = new Mongo($database); $adapter->setOption('ttl', 3600); $cache = new Cache($adapter);
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\Mongo; $client = new MongoClient($dsn); $database = $client->selectDatabase($dbName); $collection = $database->selectCollection($collectionName); $adapter = new Mongo($collection); $adapter->setOption('ttl', 3600); $cache = new Cache($adapter);
请注意,过期的缓存项目不会自动删除。为了保持数据库清洁,您应该创建一个TTL索引。
db.items.createIndex( { "ttl": 1 }, { expireAfterSeconds: 30 } )
Mysqli
如果您系统中有mysqlnd,请使用它。
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\Mysqli; $adapter = new Mysqli(); $adapter->setOption('ttl', 3600); $cache = new Cache($adapter);
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\Mysqli; use \mysqli as Backend $backend = new Backend(); // configure it here $cache = new Cache(new Mysqli($backend));
NotCache
如果您不打算实现任何缓存适配器,这是一个适配器,将用于欺骗测试环境。
Predis
如果您系统中提供redis,请使用它。
您需要在composer文件中添加predis作为依赖项。
"require": { //... "predis/predis": "~1.0.0" }
其他版本可能存在兼容性问题。
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\Predis; $adapter = new Predis(); $cache = new Cache($adapter);
如果您需要配置您的predis客户端,您将实例化它并将其传递给构造函数。
<?php use Desarrolla2\Cache\Cache; use Desarrolla2\Cache\Adapter\Predis; use Predis\Client as Backend $adapter = new Predis(new Backend($options)); $cache = new Cache($adapter);
即将推出
此库将尽快实现其他适配器,如果您认为合适的,请随时发送新的适配器。
这是一个待办事项列表。
- 清理缓存
- MemcachedAdapter
- 其他适配器
联系
您可以通过@desarrolla2与我联系。