filedb

package
v0.0.0-...-6853175 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 19, 2024 License: MulanPSL-2.0 Imports: 7 Imported by: 0

README

filedb

文件模拟数据库,用于轻量级应用,不想要数据库,而又有持久化需求的场景。

数据结构:

  • Item:一张表对应一个文件,多用于记录大致固定数量的信息。
  • List:大量同类数据,每一条对应一个文件,用于记录数量频繁变动、单条记录不可变的数据。

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Item

type Item[T any] struct {
	Filepath string      // 完整的文件路径
	Perm     os.FileMode // 文件权限,默认0644
	// contains filtered or unexported fields
}

func NewItem

func NewItem[T any](dirpath string, filename string) *Item[T]

新建一个文件存储

func (*Item[T]) Get

func (t *Item[T]) Get() (data T, err error)

读取当前内容

func (*Item[T]) Set

func (t *Item[T]) Set(data T) (err error)

写入新的内容

type List

type List[T any] struct {
	Dirpath    string      // 文件目录
	Prefix     string      // 文件前缀,和每一条数据ID直接拼接
	Perm       os.FileMode // 文件权限,默认0644
	BatchCount int         // 读取文件列表时批量数量,默认为1000
	// contains filtered or unexported fields
}

func NewList

func NewList[T any](dirpath string, prefix string) *List[T]

新建一个文件存储

func (*List[T]) AddItem

func (t *List[T]) AddItem(dataId string, data T) (err error)

写入新的数据内容

func (*List[T]) GetAllId

func (t *List[T]) GetAllId() (idList []string, err error)

读取ID列表,不包含Prefix

func (*List[T]) GetItem

func (t *List[T]) GetItem(dataId string) (data T, err error)

读取单个数据内容

func (*List[T]) IsExist

func (t *List[T]) IsExist(dataId string) (isFile bool, isExist bool, err error)

判断数据ID是否已经存在

func (*List[T]) RemoveItem

func (t *List[T]) RemoveItem(dataId string) (err error)

删除数据内容

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL