weakbit/lucene-cache

为TYPO3提供缓存后端,将所有缓存信息存储在Lucene中

安装次数: 1,257

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 1

开放性问题: 0

类型:typo3-cms-extension

1.1.2 2024-07-22 11:08 UTC

This package is not auto-updated.

Last update: 2024-09-16 11:46:40 UTC


README

为TYPO3提供缓存后端,将所有缓存信息存储在Lucene。

lucene-cache for TYPO3的关键特性

  • 高效缓存:利用Lucene的索引和搜索功能快速存储和检索缓存内容。
  • 可扩展性:可以处理大量数据,在高负载下表现良好,适合大型TYPO3安装。
  • 灵活性:提供灵活的配置选项,以满足特定需求。
  • 集成:无缝集成到TYPO3的缓存框架中,允许在TYPO3项目中轻松设置和使用。

安装和配置

要在您的TYPO3项目中使用lucene-cache后端,请按照以下步骤操作

安装扩展

您可以通过Composer安装lucene-cache扩展

composer require andersundsehr/lucene-cache

配置缓存后端

在您的TYPO3配置中,通常在LocalConfiguration.php或AdditionalConfiguration.php,additional.php,settings.php或ext_localconf.php中,您需要配置缓存后端以使用Lucene。以下是一个示例配置

$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['pages'] = [
    'frontend' => \TYPO3\CMS\Core\Cache\Frontend\VariableFrontend::class,
    'backend' => \Weakbit\LuceneCache\Cache\Backend\LuceneCacheBackend::class,
    'options' => [
        'defaultLifetime' => 604800,
        'indexName' => 'pages',
        'maxBufferedDocs' => 1000,
    ],
    'groups' => [
      'pages',
    ]
];

示例用法

配置lucene-cache后端后,TYPO3将使用Lucene对您指定的页面或其他缓存配置进行缓存。您可以通过检查指定的索引路径中的Lucene索引文件和监控TYPO3安装的性能改进来验证缓存行为。

更多资源

Lucene-cache GitHub仓库 TYPO3缓存框架文档

这些资源提供了全面的文档和示例,以帮助您开始使用lucene-cache后端。

缓存示例配置

$GLOBALS['TYPO3_CONF_VARS']['SYS']['caching']['cacheConfigurations']['pages'] = [
    'frontend' => \TYPO3\CMS\Core\Cache\Frontend\VariableFrontend::class,
    'backend' => \Weakbit\LuceneCache\Cache\Backend\LuceneCacheBackend::class,
    'options' => [
        'defaultLifetime' => 604800,
        'indexName' => 'pages',
        'maxBufferedDocs' => 1000,
    ],
    'groups' => [
      'pages',
    ]
];

选项"indexName"不得包含以下以外的字符:a-zA-Z0-9-_

性能

开发此缓存的问题是使用了非常多的缓存标签。

maxBufferedDocs设置为1000,这意味着在写入之前最多有1000个文档被缓冲,这对于有额外RAM的大型导入来说是个好选择。但请记住,查找(has、get、remove、flush)操作将始终首先提交缓冲区,以便有一个完整的索引来搜索。

请注意

此扩展依赖于使用SingleSpaceTokenizer与lucene包,所以如果您已经在项目中使用lucene,您的分词器将被覆盖,这可能会导致问题。这是我们正在努力解决的问题

考虑事项

在示例中

    'frontend' => \TYPO3\CMS\Core\Cache\Frontend\VariableFrontend::class,

设置,这是默认前端。此扩展包含dropin替换

    'frontend' => \Weakbit\LuceneCache\Cache\Frontend\VariableFrontend::class,

如果已安装igbinary,则使用igbinary,如果已安装msgpack,则使用msgpack。这些在性能上有所改进,但您也可以选择默认前端。

待办事项

  • 实现指标(命中/未命中/插入/删除)

此扩展受Benni Mack的https://github.com/bmack/local-caches的启发