xiaorenaishu/redis.sdk

基于redis的通用功能组件:分布式原子锁,原子计数器,通用缓存基类等

v1.0.0 2020-09-15 10:47 UTC

This package is auto-updated.

Last update: 2024-05-15 18:37:36 UTC


README

该组件致力于为快速迭代的业务提供统一的redis组件操作方式,降低业务代码的复杂度与冗余度。

##安装组件

COMPOSER_MEMORY_LIMIT=-1 
composer require xiaorenaishu/redis.sdk:dev-master -vvv

使用方式

  • 分布式锁
/**
 * 声明自定义锁
 */
use RedisComponent\Operator\Locker;

class XxxLocker extends Locker
{
    protected $connection = 'default';
    protected $preFix = CacheConst::PREFIX;
    protected $inFix = CacheConst::INFIX;
    protected $ttl = CacheConst::SEC;
}

/**
 * 锁使用
 */
/** @var XxxLocker $locker */
$locker = app(XxxLocker::class);
try {
    $locker->setKey(key)->setTtl(10)->setUniq(uniqid)->lock();
} catch (Exception $e) {

} finally {
    $locker->unlock();
}
  • 计数器
/**
 * 声明计数器
 */
use RedisComponent\Operator\Counter;

class XxxCounter extends Counter
{
    protected $connection = 'default';
    protected $preFix = CacheConst::PREFIX;
    protected $inFix = CacheConst::INFIX;
    protected $ttl = CacheConst::SEC;
}

/**
 * 执行计数
 */
/** @var XxxCounter $counter */
$counter = app(XxxCounter::class);
$num = $counter->setKey(id)->incr(1);

/**
 * 针对需要不同ttl的计数场景可动态配置
 */
$num = $counter->setKey(id)->setTtl(3600)->incr(1);
  • 通用缓存基类
/**
 * 声明自定义锁
 */
use RedisComponent\Operator\Cache;

class XxxCache extends Cache
{
    protected $connection = 'default';
    protected $preFix = CacheConst::PREFIX;
    protected $inFix = CacheConst::INFIX;
    protected $ttl = CacheConst::SEC;
}

/** @var XxxCache $cache */
$cache = app(XxxCache::class);

/**
 * 单key读写缓存
 */
$cache->setKey(key)->set(val);
$cache->setKey(key)->get();

/**
 * 多key读写缓存
 */
$cache->mset(keyValueMap);
$cache->mget(keys);

//todo 更多通用操作