kdudas / php-cache
PHP中的简单缓存实现
1.1.2
2018-11-05 10:47 UTC
Requires
- php: >=7.2
- ext-sockets: *
- phpunit/phpunit: ^7.4
- psr/container: ^1.0
- symfony/console: ^4.1
Requires (Dev)
- phan/phan: ^0.12.11
- squizlabs/php_codesniffer: ^3.3
README
php-cache
PHP的缓存实现
使用方法
请求数
- PHP 7.2
- composer
通过composer安装
composer require kdudas/php-cache
支持的数据类型
- 字符串
- 整数/浮点数/双精度浮点数
- 数组
- 对象
创建新的服务器实例
<?php
ini_set('log_errors', 1);
ini_set('error_log', '/var/log/php-cache.log');
require_once 'vendor/autoload.php';
use PhpCache\CacheServer\CacheServer;
use PhpCache\ServiceManager\ConfigAggregator;
use PhpCache\ServiceManager\ServiceManager;
// You can import multiple config files to overwrite parameters in the basic config or add extra parameters, including dependency injection
$config = include_once 'config.php';
$configAggregator = new ConfigAggregator();
$configAggregator->addConfig($config);
$serviceManager = new ServiceManager($configAggregator->getMergedConfig());
$server = $serviceManager->get(CacheServer::class);
$server->run();
运行服务器
php testServer.php
或者
mv daemon.sh /etc/init.d/php-cache
chmod +x /etc/init.d/php-cache
# now you can use systemctl style service management
sudo service php-cache start
注意:如果您想使用其他目录,可以修改 daemon.sh 文件的内容
配置数组
config: 基本配置数组
--memoryLimit: 如其名所示,超过限制后,我们的缓存池中的数据将备份到文件系统
--location: 服务器IP地址或套接字文件位置(字符串)
--port: 运行套接字的端口号(数字)
--bufferSize: 从流中读取的数据块大小(字节)
--ttl: 存活时间;条目应在缓存池中占用空间多长时间后删除(秒)
--backupTime: 计划备份(秒)
--backupDir: 在哪里存储备份数据?在关闭服务器服务时、计划备份发生或我们的缓存池超过其内存限制时进行备份
--socketType: 应该使用哪种套接字类型?为套接字打开网络端口或创建套接字文件。值必须是file(CacheIOHandler::SOCKET_TYPE_FILE) 或ip(CacheIOHandler::SOCKET_TYPE_IP)services: 服务管理器配置
--aliases: 分配给真实服务的名称(例如:'cache-server' => CacheServer::class)
--factories: 服务名称与工厂名称的配对
--invokables: 无依赖项的服务
创建新的客户端实例
<?php
include_once('vendor/autoload.php');
use PhpCache\CacheClient\CacheClient;
use PhpCache\ServiceManager\ServiceManager;
$config = require_once 'config.php';
$serviceManager = new ServiceManager($config);
/* @var $client CacheClient */
$client = $serviceManager->get(CacheClient::class);
$client->set('test', 'ASD');
echo $client->get('test');
您可以从浏览器或控制台运行客户端
php testClient.php
CLI命令
./phpCache get <key> 获取指定键的条目。如果没有指定键,则返回所有条目。
./phpCache set <key> <value> 使用给定的键值对将条目推送到缓存池。
./phpCache delete <key> 删除具有给定键的条目