python LevelDB基础开发&与Flask结合
文章目录
1.前言
- 本文主要介绍python下leveldb的基础开发以及leveldb结合Flask的api服务简单开发
- 本文不会过多赘述leveldb和Flask的基础理论,仅简要阐述与调试及开发相关的知识点.因此,如对leveldb或Flask相关细节存疑请移步百度google
- 一切请以官网为准,并注意版本对应
- 如有侵权,请联系本人删除,thanks!
- 欢迎评论/指正,没有最好的思路只有更好的思路
2.LevelDB基础开发
2.1LevelDB简要介绍
LevelDB百度百科: https://baike.baidu.com/item/LevelDB/6416354?fr=aladdin
在这里我提及的几点有关leveldb的特点,都会对之后的操作有影响
- LevelDB是单进程服务!随机读全命中的情况下性能很高
- 是一个C的库,所以:
- NOSQL,不支持SQL语句,不支持索引
- 没有进行网络服务封装,不像mysql可以
mysql ip:port -u -p
登录
- python提供LevelDB调用库:plyvel
2.2环境安装
代码: https://github.com/1tjackp0t/LevelDB_demo
环境
- centos 8
- python 3.6
安装步骤
# 安装leveldb前需要cmake环境
# ali的yum库中cmake版本只到2.8,所以得手动安装了
# 先卸载旧的cmake
$ yum remove cmake
# 下载安装新版cmake
$ wget https://github.com/Kitware/CMake/releases/download/v3.18.0/cmake-3.18.0.tar.gz
$ tar -zxvf cmake-3.18.0.tar.gz
$ cd CMake-3.18.0
$ ./bootstrap
$ gamke
$ gmake install
# 完成上面所有步骤需要等上一会
$ cmake --version
# 安装leveldb
$ cd /opt/leveldb/leveldb-1.22
$ mkdir -p build && cd build
$ cmake -DCMAKE_BUILD_TYPE=Release .. && cmake --build .
# 安装完成后,复制库文件到系统调用中
$ cp build/libleveldb.a /usr/local/lib/
$ cp -r include/leveldb/ /usr/local/include/
# 进入工程目录,pip升级一下然后安装plyvel
$ pip install --upgrade pip
$ pip install plyvel
# 在工程目录下创建db文件夹(文件夹位置及命名自定义)以存放数据库相关文件
$ mkdir db
2.3基础开发
# 基本的增删改查实现
# 因为不像mysql做过封装,所以如果要实现更复杂的功能就需要自己实现了
# coding=UTF-8
import plyvel
class DbClient:
# 初始化&打开数据库
def __init__(self, location):
self._db = plyvel.DB(location, create_if_missing=True)
print("open db's location:" + location)
# 插入数据&修改
# leveldb 存取的是二进制数据,所以参数得先确保转换成字符串类型,然后再转换成二进制数据
# 若插入先相同key值则变为修改!
def put(self, key, value):
self._db.put(str(key).encode(), str(value).encode())
print("inpu