kdudas/php-cache

PHP中的简单缓存实现

1.1.2 2018-11-05 10:47 UTC

This package is auto-updated.

Last update: 2024-09-11 13:15:31 UTC


README

StyleCI Scrutinizer Code Quality Build Status

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: 应该使用哪种套接字类型?为套接字打开网络端口或创建套接字文件。值必须是 fileCacheIOHandler::SOCKET_TYPE_FILE) 或 ipCacheIOHandler::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> 删除具有给定键的条目