Skip to content

jiniyingming/cacheTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

CacheTool

主要针对数据量大页面流量高的环境做的缓存策略,数据会进行切片缓存处理并使用延时队列保证数据在阶段时间内的数据更新。

要求

  • PHP >= 7.0.0
  • Laravel >= 5.5.0
  • Redis

调用方式

<?php
CacheToolFunc::instance()->inputParams($params)
            ->callStaticFunc(CacheFunc::class, 'getData')
            ->setMaxSliceSize(40)
            ->setTemplate([
                'id' => '_id',
                ...
            ])
            ->setTTl(120)
            ->keepTime(2)
            ->output();

函数解释

调用参数

CacheToolFunc::instance()->inputParams($params);

目标数据方法(静态调用)

CacheToolFunc::instance()->callStaticFunc($class, $method);

目标数据方法(非静态调用)

CacheToolFunc::instance()->callFunc($class, $method);

数据切片数量

CacheToolFunc::instance()->setMaxSliceSize($sliceSize);

设置输出模板

CacheToolFunc::instance()->setTemplate([
                'id' => 'doc_id',
                'name' => 'project_name'
            ]);

设置过期时间 秒级

CacheToolFunc::instance()->setTTl(60);

设置保持更新时间段 分级

CacheToolFunc::instance()->keepTime(60);

设置Redis 实例

CacheToolFunc::instance()->setConnection('default');

刷新缓存

CacheToolFunc::instance()->flush();

设置缓存key前缀

CacheToolFunc::instance()->setSuffix('key');

Redis 二次封装类

数据切片并推送

<?php
  RedisCache::getInstance($this->select, $this->connection)
            ->pipeline()
            ->pushSliceData($this->backInfo, $this->suffixKey, $this->maxSliceSize, $this->cacheModule, $this->ttl, $this->ttlIsRandom)
            ->exec();

取出切片缓存数据

<?php
 RedisCache::getInstance(0, $this->connection)
            ->pipeline()
            ->popSliceData($this->suffixKey, $this->maxSliceSize, $this->cacheModule)
            ->exec();

About

PHP 基于Laravel下 缓存数据工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages