数据持久化
考虑用多层结构来持久化数据,目前支持三层,shared dict,cus,store(索引文件存储格式)
对于 cus
自定义数据源存储模式来说,项目默认支持了redis数据源存储,如有需要可自行定制相关存储模式,如mysql, etcd等
使用方式
引入cache依赖
按照场景需要创建对应的business-name,每个business-name是一个存储文件和一个对应索引文件
local cache = require("cache.tl_ops_cache_core"):new("business-name");
按需调用
目前支持六种模式,000分别代表shared dict,cus,store, 例如 : 101代表开启shared dict,store,且不开启自定义模式
cache:set101("key", "value");
cache:get101("key", "value");
默认场景
目前默认是采用111模式, get(), set()对应的就是get111(), set111()
cache:set("key", "value");
cache:get("key", "value");
实现思路
通过文件指针seek来简要实现文件存储,目前单个最大文件支持4GB。具体实现代码可查看这两个文件
utils/tl_ops_utils_store.lua, cache/tl_ops_cache_store.lua
2.1 索引文件
名称统一为 : business-name.tlindex
2.2 存储文件
名称统一为 : business-name.tlstore