littlebot
Published on 2025-04-12 / 2 Visits
0

【源码】基于Go语言的LevelDB Web管理工具

项目简介

本项目是基于Go语言的LevelDB Web管理工具,提供API接口供外部程序或网页前端进行数据操作,内嵌简单HTTP服务器提供API服务。用户能通过该工具对LevelDB数据库进行管理和操作,如注册数据库、获取键值对、获取键值对数量、获取键值对详情、删除键值对和更新键值对等。

项目的主要特性和功能

  1. 支持独立server模式和共用server模式嵌入Go代码中使用。
  2. 可独立启动程序或通过Docker启动。
  3. 提供对LevelDB数据库的多种管理操作,包括注册数据库、获取键值对、获取键值对数量、获取键值对详情、删除键值对和更新键值对等。
  4. 提供简单的Web界面,方便用户在浏览器中进行操作。

安装使用步骤

环境变量说明

  • LEVEL_ADMIN_ADDRESS:http服务监听地址,默认由系统分配端口,例如:4333
  • LEVEL_ADMIN_DEBUG:开启debug模式,值为true

使用示例

1. 独立server模式[嵌入go代码中]

在代码中设置环境变量LEVEL_ADMIN_ADDRESS=:4333,示例代码如下: ```go package main

import ( )

func main() { db, _ := leveldb.OpenFile("/tmp/leveldb", nil) // 正常的db操作逻辑... // 正常的db操作逻辑...

// 独立端口模式: 
// 只需要向leveldbAdmin注册db的指针和一个用于区分的描述
levelAdmin.GetLevelAdmin().Register(db, "description").Start()

} `` 启动后,当LEVEL_ADMIN_DEBUG=true`时会有日志输出,可通过输出的地址在浏览器中访问。

2. 共用server模式[嵌入go代码中]

此模式将不处理LEVEL_ADMIN_ADDRESS配置,示例代码如下: ```go package main

import ( "net/http" )

func main() { // 其他server 处理 http.HandleFunc("/other", func(writer http.ResponseWriter, request *http.Request) { writer.Write([]byte("hello other")) }) go http.ListenAndServe(":4333", nil)

// 正常的db操作逻辑...
db, _ := leveldb.OpenFile("/tmp/leveldb", nil)
// 正常的db操作逻辑...

//levelAdmin 路由全以 leveldb_admin 开头, 可以与其他http server共用server, 需要手动设置 ServerMux
levelAdmin.GetLevelAdmin().Register(db, "description").SetServerMux(http.DefaultServeMux).Start()

} ```

3. 独立启动(执行程序)

先编译程序: bash go build cmd/main.go 然后运行程序,指定LevelDB数据库路径: bash ./mian -path /var/leveldb-web -path /var/leveldb

4. 独立启动(docker)

先构建Docker镜像: bash docker build -t leveladmin . 然后运行Docker容器: bash docker run -d -e LEVEL_ADMIN_DEBUG=true -e LEVEL_ADMIN_ADDRESS=:4333 -p 4333:4333 -v /var/level:/var/level leveladmin /bin/main -path /var/level

浏览器访问

启动后,在浏览器中访问http://127.0.0.1:4333/leveldb_admin/static/即可使用该工具。

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】