• 选项配置
    • 默认选项

    选项配置

    • Dir string

    Dir 代表数据库存放数据的目录

    • EntryIdxMode EntryIdxMode

    EntryIdxMode 代表索引entry的模式.
    EntryIdxMode 包括两种选项: HintKeyValAndRAMIdxModeHintKeyAndRAMIdxMode.
    其中HintKeyValAndRAMIdxMode 代表纯内存索引模式(key和value都会被cache)。
    HintKeyAndRAMIdxMode 代表内存+磁盘的索引模式(只有key被cache)。

    • RWMode RWMode

    RWMode 代表读写模式. RWMode 包括两种选项: FileIO and MMap.
    FileIO 用标准的 I/O读写。 MMap 代表使用mmap进行读写。

    • SegmentSize int64

      SegmentSize 代表数据库的数据单元,每个数据单元(文件)为SegmentSize,现在默认是8
      MB,这个可以自己配置。但是一旦被设置,下次启动数据库也要用这个配置,不然会报错。详情见 限制和警告。

    • NodeNum int64

    NodeNum 代表节点的号码.默认 NodeNum是 1. NodeNum 取值范围 [1,1023] 。

    • SyncEnable bool

    SyncEnable 代表调用了 Sync() 方法.
    如果 SyncEnable 为 false, 写性能会很高,但是如果遇到断电或者系统奔溃,会有数据丢失的风险。
    如果 SyncEnable 为 true,写性能会相比false的情况慢很多,但是数据更有保障,每次事务提交成功都会落盘。

    • StartFileLoadingMode RWMode

    StartFileLoadingMode 代表启动数据库的载入文件的方式。参数选项同RWMode

    默认选项

    推荐使用默认选项的方式。兼顾了持久化+快速的启动数据库。当然具体还要看你场景的要求。

    1. var DefaultOptions = Options{
    2. EntryIdxMode: HintKeyValAndRAMIdxMode,
    3. SegmentSize: defaultSegmentSize,
    4. NodeNum: 1,
    5. RWMode: FileIO,
    6. SyncEnable: true,
    7. StartFileLoadingMode: MMap,
    8. }