suven/flint-redis

该软件包最新版本(v1.0.0)没有可用的许可信息。

flintstone和predis的包装器

v1.0.0 2017-04-24 22:40 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:26:45 UTC


README

Build Status Scrutinizer Code Quality Code Coverage

超轻量级且具有观点的包装器,围绕 flintstonepredis

使您能够使用redis或文件系统存储多个键值集合。

背景

为什么我需要这个?

如果您正在编写需要缓存集合数据的应用程序,您会希望使用一些快速键值存储,例如redis或memcached。不幸的是,redis并不总是可用,尤其是在共享主机上。在这些情况下,如果您仍然需要缓存内容,文件系统通常是一个更好的选择,而不是不缓存。

为什么没有PSR-6?

市面上有大量现成的缓存适配器,它们实现了某些常用接口。这些适配器通常经过良好的测试,功能强大,维护良好。它们也可能为您提供更多选择提供商的自由。如果您还需要为memcached或db-caching提供支持,您应该选择这些中的一个。

话虽如此,该库的力量在于它是最小化和具有观点的。它为您提供 exactly two options for caching-providers,并带有两个提供商共享的所有功能。

安装

composer require suven/flint-redis

使用

use Suven\FlintRedis\FlintRedisCacheFactory;

if ($youWantToUseRedis) {
    FlintRedisCacheFactory::$strategy = FlintRedisCacheFactory::STRATEGY_REDIS;
    FlintRedisCacheFactory::$options = [
        "yourOptions" => "that you'd like to pass to predis"
    ];
}

if ($youWantToUseFlintstone) {
    FlintRedisCacheFactory::$strategy = FlintRedisCacheFactory::STRATEGY_FLINTSTONE;
    FlintRedisCacheFactory::$options = [
        "yourOptions" => "that you'd like to pass to flintstone"
    ];
}

// Get a new collection for settings
$settings = FlintRedisCacheFactory::create("settings");

// Set a value
$settings->set('target', 'worldDomination');
$settings->set('favNumber', 42);
$settings->set('someBool', true);
$settings->set('youCanStoreAnythingPHPcanSerialize', [
    'foo' => 'bar'
]);

// Get a value by key
$favNumber = $settings->get('favNumber');

// Get all values
$allSettings = $settings->getAll();

// Get all keys
$settingKeys = $settings->getKeys();

// Delete a value by key
$settings->delete('favNumber');

// Delete all settings
$settings->flush();