定制 weakbit/lucene-cache 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

weakbit/lucene-cache

Composer 安装命令:

composer require weakbit/lucene-cache

包简介

Provides a cache backend for TYPO3 that stores all cache information in Lucene

README 文档

README

CI codecov

Provides a cache backend for TYPO3 that stores all cache information in Lucene index.

Key Features of lucene-cache for TYPO3

  • Efficient Caching: Uses Lucene's indexing and search capabilities to store and retrieve cached content quickly.
  • Scalability: Can handle large volumes of data and perform well under high load, making it suitable for large TYPO3 installations.
  • Flexibility: Provides flexible configuration options to tailor the caching behavior to specific needs.
  • Integration: Seamlessly integrates with TYPO3's caching framework, allowing for easy setup and use within TYPO3 projects.

Installation and Configuration

To use the lucene-cache backend in your TYPO3 project, follow these steps:

Install the Extension

You can install the lucene-cache extension via Composer:

composer require andersundsehr/lucene-cache

Example Configuration for the 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,
        'maxBufferedDocs' => 1000,
        'compression' => true,
        'compressionAlgorithm' => 'zstd', // optional: auto-detects if not set
        'compressionMinSize' => 256,      // optional: skip compression for small data
    ],
    'groups' => [
      'pages',
    ]
];

Performance

The issue to develop that cache was a usage of very many cache tags.

maxBufferedDocs is set to 1000 here, that means that up to 1000 documents are buffered before to write, that is good for large imports if you have some spare ram. Meanwhile, that caching information is not available to other PHP processes.

Keep in mind that some operations (flushes and garbage collection) will always commit the buffer first to have a full index to search in.

compression

Enable compression to reduce disk space usage. The extension supports multiple compression algorithms and will auto-detect the best available one.

'options' => [
    'compression' => true,
    'compressionAlgorithm' => 'zstd',  // 'zstd', 'gzdeflate', or 'gzcompress'
    'compressionLevel' => 3,           // -1 to 9 (default: -1 = auto)
    'compressionMinSize' => 256,       // minimum bytes to compress (default: 256)
],

Available algorithms (in order of preference):

Algorithm Speed Ratio Requirement
zstd ⚡ Fast Excellent ext-zstd
gzdeflate Medium Good ext-zlib
gzcompress Medium Good ext-zlib
  • Auto-detection: If compressionAlgorithm is not set, the best available algorithm is used automatically.
  • Minimum size: Data smaller than compressionMinSize bytes is not compressed (overhead not worth it).
  • Backward compatible: Existing caches using legacy gzcompress will still decompress correctly.

For more detailed information, refer to the following resources:

Lucene-cache GitHub Repository

TYPO3 Documentation on Caching Framework

These resources provide comprehensive documentation and examples to help you get started with the lucene-cache backend for TYPO3.

Credits

This extension is inspired by Benni Mack's bmack/local-caches

统计信息

  • 总下载量: 7.13k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: GPL-2.0-or-later
  • 更新时间: 2024-05-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固