james-draper/sqlite-key-value-store

1.1 2022-04-18 09:55 UTC

This package is auto-updated.

Last update: 2024-09-18 16:25:38 UTC


README

一个用于创建自包含的sqlite键值存储的包,存储在一个文件中。

用法

通过\SqliteKeyValueStore\Store类管理键值文件。要创建一个实例,将键值文件的绝对路径传递给构造函数。如果文件尚不存在,构造函数将创建它。

$store = \SqliteKeyValueStore\Store('/path/to/file');

构造函数可能会抛出两种异常

  • \LogicException 如果路径是 :memory:。内存数据库被严格禁止。
  • \SqliteKeyValueStore\Exception 如果无法建立数据库连接。

从存储中获取值

可以通过get方法从存储中检索值

$value = $store->get('key', 'default value');

如果键存在,则返回它。如果不存在,则返回默认值(第二个参数)。如果未指定,默认值是null\SqliteKeyValueStore\Exception 如果在检索键时出现问题。

向存储中设置值

可以通过set方法将值添加/更新到存储中

$value = $store->set('key', 'value');

如果键存在,则更新它。如果不存在,则创建它。\SqliteKeyValueStore\Exception 如果在设置键时出现问题。此方法返回实例以进行方法链。

从存储中删除值

可以通过remove方法从存储中删除值

$value = $store->remove('key');

如果键存在,则删除它。如果不存在,则不执行任何操作。\SqliteKeyValueStore\Exception 如果在删除键时出现问题。此方法返回实例以进行方法链。

搜索存储

有三种方法可以搜索存储

// search by keys containing the substring "some_key" where "?" is a wildcard.
$matches = $store->searchKeys('?some_key?', '?');

// search by values containing the substring "some_value" where "?" is a wildcard.
$matches = $store->searchValues('?some_value?', '?');

// search by keys containing the substring "some_key"
// AND by values containing the substring "some_value"
// where "?" is a wildcard.
$matches = $store->search('?some_key?', '?some_value?', '?');

通配符是可选参数,默认为*。如果它不是恰好1个字符,则抛出\SqliteKeyValueStore\Exception。每个方法都返回与存储中匹配的键值对数组。

备份存储

可以通过调用backup并指定一个路径来备份数据库,以备份存储。路径必须为空或抛出\SqliteKeyValueStore\Exception。在备份数据库时,数据库将锁定,并且所有写操作将阻塞,直到备份完成。

$store->backup('backup/path');

获取存储大小

可以通过调用getSize来确定存储的大小,它以整数形式返回存储中键值对的数量。

$store->getSize();