使用示例
通过实际代码示例快速了解如何使用AmDb数据库,涵盖基础操作、区块链应用、批量处理等常见场景。
基础操作
学习如何创建数据库、写入和读取数据的基本操作。
from amdb import Database
# 创建数据库实例
db = Database(data_dir='./data/mydb')
# 写入数据
db.put(b'key1', b'value1')
db.put(b'key2', b'value2')
# 读取数据
value = db.get(b'key1')
print(value) # b'value1'
# 刷新到磁盘
db.flush()
批量写入
使用批量写入提升性能,适合大量数据的场景。
# 准备批量数据
items = [
(b'key1', b'value1'),
(b'key2', b'value2'),
(b'key3', b'value3'),
]
# 批量写入(高性能)
success, root_hash = db.batch_put(items)
# 同步刷新
db.flush(force_sync=True)
区块链应用
在区块链项目中存储区块、交易和账户状态。
# 存储区块数据
block_hash = b'block_001'
block_data = b'{"height": 1, "transactions": [...]}'
db.put(block_hash, block_data)
# 存储账户状态
account_key = b'account:0x1234'
account_data = b'{"balance": 1000, "nonce": 5}'
db.put(account_key, account_data)
# 批量存储交易
transactions = [(b'tx:001', tx_data), ...]
db.batch_put(transactions)
版本管理
使用版本管理功能查询历史数据和状态回滚。
# 获取版本历史
history = db.version_manager.get_history(b'account:0x1234')
# 获取特定版本
value = db.get_version(b'account:0x1234', version=5)
# 时间点查询
state = db.get_at_time(b'account:0x1234',
timestamp=1234567890)
多数据库管理
同时管理多个独立的数据库实例。
# 创建多个数据库
db1 = Database(data_dir='./data/db1')
db2 = Database(data_dir='./data/db2')
# 独立操作
db1.put(b'key1', b'value1')
db2.put(b'key1', b'value2')
# 数据互不干扰
print(db1.get(b'key1')) # b'value1'
print(db2.get(b'key1')) # b'value2'
远程连接
通过网络服务模式连接远程数据库。
from amdb.network import RemoteDatabase
# 连接到远程数据库
db = RemoteDatabase(
host='localhost',
port=3888,
db_name='blockchain_db'
)
# 远程操作
db.put(b'key', b'value')
value = db.get(b'key')