私が知っている限りでは、キー/値デーモンレスデータベースであるBerkeley DBがあります。詳細については、リンクをたどってください。ウィキペディアからの抽出:
Berkeley DB(BDB)は、キー/値データ用の高性能な組み込みデータベースを提供することを目的としたソフトウェアライブラリです。Berkeley DBは、C ++、C#、Java、Perl、PHP、Python、Ruby、Smalltalk、Tcl、および他の多くのプログラミング言語のAPIバインディングを使用してCで記述されています。BDBは、任意のキー/データペアをバイト配列として保存し、1つのキーに対して複数のデータ項目をサポートします。Berkeley DBはリレーショナルデータベースではありません。
RHEL / CentOSのデータベースの場所は/var/lib/mlocate/mlocate.db
(他のディストリビューションについてはわかりません)。このコマンドlocate --statistics
は、場所に関する情報とデータベースの統計情報を提供します(例):
Database /var/lib/mlocate/mlocate.db:
16,375 directories
242,457 files
11,280,301 bytes in file names
4,526,116 bytes used to store database
mlocate形式の場合は、manページの先頭です:
mlocateデータベースは、ファイルヘッダーで始まります。マジックナンバー(Cリテラルのような「\ 0mlocate」)に8バイト、ビッグエンディアンの構成ブロックサイズに4バイト、ファイル形式バージョン(0)に1バイト、1 「可視性が必要」フラグのバイト(0または1)、2バイトのパディング、およびデータベースのルートのNUL終了パス名。
ヘッダーの後には構成ブロックが続きます。これは、構成の変更が内容に影響を与える可能性がある場合にデータベースが再利用されないようにするために含まれています。構成ブロックのサイズ(バイト単位)は、ファイルヘッダーに格納されます。構成ブロックは、変数名順に並べられた一連の変数割り当てです。各変数割り当ては、NULで終わる変数名とNULで終わる値の順序付きリストで構成されます。値リストは、もう1つのNUL文字で終了します。使用される順序は、strcmp()関数によって定義されます。