fhteam/laravel-cache-redis-extended
最新稳定版本:v0.0.1
Composer 安装命令:
composer require fhteam/laravel-cache-redis-extended
包简介
Redis cache driver with extended capabilities
README 文档
README
This project is currently under development. Code most probably is broken. Please wait until 1.0 is released to use it in production.
| Metrics | _ |
|---|---|
| Version | |
| Compatibility | |
| Quality |
Features:
- All
Cachefacade methods extended to accept arrays as keys to utilize Redis MULTI operations (multi-get, -set, -forget etc.) - Redis optimized commands used where appropriate (
EXISTSinhas(),SET...NXinadd()etc) - ❗ No need to do
Cache::tags(...)when reading data.Cache::get()is enough. So you can now query cache without even knowing which tags are associated with some cache item - Tag operations optimized: there will be no second Redis query when doing
Cache::tags()with the same tag set - Serialization support:
- Built-in ability to serialize and deserialize Laravel models with all attributes and relations as a single cache item (Laravel cannot cache models, only queries upon which models are constructed. Each relation in Laravel currently is a separate query and thus a separate cache item)
- Ability to add new serializers / deserializers for custom object types
Architecture
Core <===> Serialization <===> Encoding
| |
|----> TagVersionStorage <------|
+ Utility +
- Core contains mostly Redis command implementations
- Serialization handles packing and unpacking cache items into a structure, suitable to be placed into a cache
(encoded item value, expiration data, item tags with their versions). Serialization relies on Coders to convert objects into
something easily serializable.
- Coders contain low-level serialization routes. They receive data (objects or whatever) and emit something, that
can be passed to PHP's
serialize()in order to get encoded object's representation. Every coder must implementCoderInterface
- Coders contain low-level serialization routes. They receive data (objects or whatever) and emit something, that
can be passed to PHP's
- TagVersionStorage is a per-Redis-connection singleton, that manages tag versions: fetches actual tag versions,
compares them, flushes them etc. All tag storage handlers should implement
TagVersionStorageInterface.PlainTagVersionStorageis a basic version of tag version storage that doesn't share any information about tag versions outside current PHP process. You can implement a version, that will store actual tag versions, for example, in APC if querying Redis becomes expensive or just needs to be avoided.
- Utility contains some low-level specific tools which are not subsystem related.
RedisConnectionTrait- is a trait, that allows to reuse the same scheme of Redis connection handling across the projectArrcontains some low-level array routinesTimecontains some time management routines
Contribute
- Code style - Symfony 2
- Use type hinting where possible
- Use phpdoc annotations where possible
- Prefer language constructs to strings (for example, use
MyClass::class, not'MyClass'where class name is needed)
统计信息
- 总下载量: 39
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 8
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: GPL-2.0
- 更新时间: 2015-03-13