-
Notifications
You must be signed in to change notification settings - Fork 9
TripleCache
marstone edited this page Jun 6, 2023
·
5 revisions
- 定义三元组缓存结构
enum TripleType {
user
dept
post
occupy
}
type User {
# 待完善
}
type Dept {
# 待完善
}
type Post {
# 待完善
}
type Occupy {
# 待完善
}
- KEY:
triple:user:{openid} - 类型:string
- KEY:
triple:user.idmap:{principal} - 类型:hash
- 哈希key:
UserPrincipalName@租户ID - 哈希value:
openid
- 哈希key:
- KEY:
triple:user.idmap.reverse:{principal} - 类型:hash
- 哈希key:
openid - 哈希value: 1对1的账号主体为
UserPrincipalName@租户ID,多值为JSON List
- 哈希key:
- KEY:
enterprise:{tenant}:cube:{type} - 类型:hash
- 哈希key:该类型id,
openid部门编码岗位编码 - 哈希value: 对应实体 json
- 哈希key:该类型id,
- 查询举例
- HVALS:获取租户下某种实体全集
- HLEN: 获取数量
- HGET:单实体查询
- KEY:
enterprise:{tenant}:cube:plane:{type}:{id} - 类型:hash
- 哈希key:三元组标识
$openid|$dept|$post - 哈希value:关系json(occupy)
- 哈希key:三元组标识
- 查询举例
- HVALS enterprise:{t1}:cube:plane:user:{u1}:用户u1的身份列表
- KEY:
enterprise:{tenant}:cube:line.yz:{dept}:{post} - 类型:hash,解释同切面。
- 含义:
- 关系立方体中 x轴为
user,y轴为dept,z轴为post - line.yz 标识y、z轴切面的关系内容,即,指定部门和岗位下的三元组列表
- 关系立方体中 x轴为
与 UserFilter 的对应关系
| UserFilter | 查询方式 |
|---|---|
| dept:post | HVALS cube:line.yz:{dept}:{post} |
| dept | HVALS cube:plane:dept:{dept} |
| :post | HVALS cube:plane:post:{post} |
| ::user | HGET cube:user {user} |