nytris/memcached

安装: 746

依赖: 0

建议者: 0

安全: 0

星标: 1

关注者: 1

分支: 0

开放问题: 0

类型:项目

v0.0.8 2024-08-27 06:32 UTC

This package is auto-updated.

Last update: 2024-08-27 09:52:30 UTC


README

Build Status

标准 PECL ext-memcached,支持动态模式/自动发现,适用于 Memcached AWS ElastiCache。

为什么?

在利用 AWS ElastiCache 自动发现的同时,使用稳定且性能优异的标准 ext-memcached 从 PECL。

它是如何工作的?

使用 PHP Code Shiftext-memcachedMemcached 类引用替换为该包中 src/Memcached/MemcachedHook.php 类的引用。

此外,会话连接也可以利用自动发现

添加服务器时,如果已启用此包在 nytris.config.php 中的动态模式,将使用 AWS ElastiCache 自动发现功能,并将所有发现的节点添加到 Memcached 实例。

目前,默认将以下对 Memcached 的引用钩子连接,但可以使用 new MemcachedPackage(memcachedClassHookFilter: ...) 进行自定义。

使用方法

使用 Composer 安装此包

$ composer require nytris/memcached tasque/tasque tasque/event-loop

配置 Nytris 平台

nytris.config.php

<?php

declare(strict_types=1);

use Nytris\Boot\BootConfig;
use Nytris\Boot\PlatformConfig;
use Nytris\Memcached\Library\ClientMode;
use Nytris\Memcached\MemcachedPackage;
use Tasque\EventLoop\TasqueEventLoopPackage;
use Tasque\TasquePackage;

$bootConfig = new BootConfig(new PlatformConfig(__DIR__ . '/var/cache/nytris/'));

$bootConfig->installPackage(new TasquePackage(
    // Disabled for this example, but also works with Tasque in preemptive mode.
    preemptive: false
));
$bootConfig->installPackage(new TasqueEventLoopPackage());
$bootConfig->installPackage(new MemcachedPackage(
    // Use dynamic mode/auto-discovery when connecting to an AWS ElastiCache cluster.
    clientMode: ClientMode::DYNAMIC
));

return $bootConfig;

会话支持

通过 Nytris\Memcached\Session\NativeMemcachedSessionHandler 使用原生 ext-memcached 会话处理支持会话。

如果启用自动发现,当配置端点提供 session.save_path INI 设置或 $savePath 构造函数参数时,将执行自动发现。

<?php

use Nytris\Memcached\Session\NativeMemcachedSessionHandler;

session_set_save_handler(new NativeMemcachedSessionHandler());

另请参阅