lmdb数据库的读取与转换(一) —— 基本操作

2022-04-15 00:00:00 专区 订阅 事务 付费 提交

基本操作
txn.commit()

对LMDB的修改必须使用txn_commit()将事务提交,否则所有的操作均被丢弃

通过 env = lmdb.open() 打开环境
通过 txn = env.begin() 建立事务
通过 txn.put(key, value) 进行插入和修改
通过 txn.delete(key) 进行删除
通过 txn.get(key) 进行查询
通过 txn.cursor() 进行遍历
通过 txn.commit() 提交更改


import lmdb
import os, sys

def initialize():
env = lmdb.open("lmdb_dir") #如果没有就创建lmdb_dir目录
return env

def insert(env, sid, name):
txn = env.begin(write=True)
txn.put(str(sid).encode(), name.encode())
txn.commit()

def delete(env, sid):
txn = env.begin(write=True)
txn.delete(str(sid).encode())
txn.commit()

def update(env, sid, name):
txn = env.begin(write=True)
txn.put(str(sid).encode(), name.encode())
txn.commit()

def search(env, sid):
txn = env.begin()
name = txn.get(str(sid).encode())
return name

def display(env):
txn = env.begin()
cur = txn.cursor()
for key, value in cur:
print(key, value)


env = initialize()


print("Insert 3 records.")
insert(env, 1, "Alice")
insert(env, 2, "Bob")
insert(env, 3, "Peter")
display(env)

print("Delete the record where sid = 1.")
delete(env, 1)
display(env)

print("Update the record where sid = 3.")
update(env, 3, "Mark")
display(env)

print("Get the name of student whose sid = 3.")
name = search(env, 3)
print(name)

# 后需要关闭lmdb数据库
env.close()

# 执行系统命令
# os.system("rm -r lmdb_dir")

——————
原文链接:https://blog.csdn.net/hxxjxw/article/details/117960303

相关文章