carlonicora / minimalism-service-cacher
极简主义的缓存服务
Requires
- php: >=8.1
- ext-json: *
- carlonicora/minimalism: ~13.0
- carlonicora/minimalism-interface-cache: ~2.0
- carlonicora/minimalism-service-redis: ~4.0
This package is auto-updated.
Last update: 2024-09-12 18:54:54 UTC
README
minimalism-service-cacher
使用 Redis
存储缓存,并利用其键/值方法保存信息。
每个键都遵循特定的模式,始终相同
m:T:L:c[:X]
m:T:L:C[:X] 模式定义了键中存储的信息。
m
m
参数是一个简单的文本,始终相同:minimalism
。它用于识别哪些缓存是由极简主义动态生成的。
示例
minimalism:
T
T
参数是缓存 TYPE
的标识符。在极简主义中,可以有两种类型的缓存:DATA
和 JSON
。这些代表数组数据或 JSON 资源。
参数全部为大写字母,只能包含 DATA
或 JSON
。
示例
使用数组标识数据结构
minimalism:DATA
使用 {json:api} 资源对象标识对象结构
minimalism:JSON
L
L
参数标识一个 LIST
。列表用于快速链接两个缓存:父缓存和子缓存。键不包含任何相关数据,但用作索引以标识哪些缓存是列表的一部分。
列表标识关系中的 parent
元素,关系中每个子元素都将有一个包含父元素(以 Element 结构格式)和内容(始终以 Element 结构格式)的键。
如果缓存不是列表,则参数的值是文本 null
(小写)。
示例
标识子对象列表。这些不包含内容,用作 Redis 中的索引
minimalism:DATA:parentName(parentIdentifier):childName(childIdentifier1)
minimalism:DATA:parentName(parentIdentifier):childName(childIdentifier2)
...
minimalism:DATA:parentName(parentIdentifier):childName(childIdentifierN)
C
C
参数标识 CONTENT
。这有两种使用方式:在列表中使用或作为独立元素。列表中的 Content
仅用作索引键,不包含任何相关数据。当 List
设置为 null
时,键包含内容的信息(DATA
或 JSON
)。
参数定义为 Element 结构。
示例
标识内容
minimalism:DATA:null:name(identifier)
在列表的情况下,每个列表元素至少包含两个内容
minimalism:DATA:null:parentName(parentIdentifier)
minimalism:DATA:null:childName(childIdentifier1)
minimalism:DATA:null:childName(childIdentifier2)
...
minimalism:DATA:null:childName(childIdentifierN)
X
X
参数标识零个或多个 CONTEXTS
。一个 Context
专门化存储在缓存中的信息类型。这可以是特定类型的数据(例如,您想指定公共和私有数据集,您可以使用上下文来完成此操作)。
Context
使用与其他部分相同的键元素结构;然而,它有两个不同之处:它可以不包含 identifier
(将使用 0
作为标识符),或者它可以包含多个 Contexts
,在这种情况下,上下文将用 -
分隔。
示例
在上下文化的缓存的情况下,上下文被添加到键的末尾
minimalism:DATA:null:name(identifier):context1(contextIdentifier1)-context2(contextIdentifier2)
在上下文方面有各种用例
no context
minimalism:DATA:null:name(identifier)
textual context (without identifier)
minimalism:DATA:null:name(identifier):contextName(0)
full context identifier
minimalism:DATA:null:name(identifier):contextName(contextIdentifier)
multiple contexts
minimalism:DATA:null:name(identifier):contextName(0)-contextName(contextIdentifier)
键元素结构
每个元素(List
、Content
、Context
)都使用两个参数进行标识:name
和 identifier
。名称通常是用于查询数据的数据库字段名称,而标识符是字段的值。缓存器以 name(identifier)
格式存储这些信息。
上下文键元素结构
尽管一个 列表
和一个 内容
由一个名称/标识符唯一定义,但一个缓存可以属于零个或多个上下文。对于上下文,元素结构变为 name1(identifier1)-name2(identifier2)-...-nameN(identifierN)
。如果没有传递 上下文
,键将不存储任何内容,但是 上下文
可以是一个简单的 名称
而没有 标识符
。在这种情况下,键使用 0
作为标识符。