Documentation ¶
Index ¶
- Variables
- type Storage
- func (slf *Storage[K, D, W]) Create(key K, data D) error
- func (slf *Storage[K, D, W]) Flush(errHandle func(data []byte, err error) time.Duration)
- func (slf *Storage[K, D, W]) LoadMigrationData(data []byte) error
- func (slf *Storage[K, D, W]) Migrate(keys ...K) (data []byte, err error)
- func (slf *Storage[Key, D, W]) Query(key Key) (v D, err error)
- func (slf *Storage[K, D, W]) Save(key K, data D) error
- type Warehouse
Constants ¶
This section is empty.
Variables ¶
View Source
var ( // ErrDataNotExist 数据不存在 ErrDataNotExist = errors.New("data not exist") )
Functions ¶
This section is empty.
Types ¶
type Storage ¶ added in v0.0.20
type Storage[K comparable, D any, W Warehouse[K, D]] struct { // contains filtered or unexported fields }
Storage 用于缓存数据的存储器
func New ¶ added in v0.1.1
func New[K comparable, D any, W Warehouse[K, D]](warehouse W) *Storage[K, D, W]
New 创建一个新的存储器
func (*Storage[K, D, W]) Flush ¶ added in v0.1.1
Flush 将缓存中的数据全部保存到数据库中,如果保存失败,会调用 errHandle 处理错误,如果 errHandle 返回 >= 0 的时长,则继续尝试保存,否则将跳过本条数据
- 当 errHandle 为 nil 时,将会无限重试保存,间隔为 100ms
func (*Storage[K, D, W]) LoadMigrationData ¶ added in v0.1.1
LoadMigrationData 加载迁移数据
type Warehouse ¶ added in v0.1.1
type Warehouse[K comparable, D any] interface { // GenerateZero 生成一个空的数据对象 GenerateZero() D // Init 用于数据初始化,例如启动时从数据库中加载所有玩家的离线数据等情况 Init() (map[K][]byte, error) // Query 查询特定 key 的数据 // - 返回的 err 应该排除数据不存在的错误情况,例如:sql.ErrNoRows Query(key K) (data []byte, err error) // Create 创建特定 key 的数据 Create(key K, data []byte) error // Save 保存特定 key 的数据 Save(key K, data []byte) error }
Warehouse 数据仓库接口,用于数据生产及持久化
Click to show internal directories.
Click to hide internal directories.