体验强悍的KV存储引擎LMDB(Symas Lightning Memory-Mapped Database)

1、Why LMDB

2、下载、编译

LMDB是没有独立的软件包,是作为OpenLDAP的一个子库,我们可以下载后者,然后从中分离编译LMDB。
wget ftp://gd.tuwien.ac.at/infosys/network/OpenLDAP/openldap-release/openldap-2.4.40.tgz
tar -xzvf openldap-2.4.40.tgz
cd openldap-2.4.40/libraries/liblmdb
make
sudo[......]

继续阅读

Python中使用pack/unpack编码字节数据

在Python中,是没有int, long这些c系的强类型的,但是有的时候,我们需要按照字节规则,生成这样的数据。

例如:生成一份网络序的,char+unsigned long数据(4+8字节):
from struct import pack
pack('!BQ', 100, 1000)
'd\x00\x00\x00\x00\x00\x00\x03\xe8'
其中,第1个!表示为网络字节序。

BQ是占位符号,分别表示8bit的unsigned char和64bit的unsi[......]

继续阅读