hkulekci / skytable-php
此库是PHP的客户端,允许您与Skytable服务器进行交互。
dev-master
2023-01-10 04:24 UTC
Requires
- php: ^8.1
- ext-sockets: *
- clue/socket-raw: ^1.6
Requires (Dev)
- mockery/mockery: ^1.5
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-10 07:40:16 UTC
README
Skytable是一个速度极快、免费和开源的实时NoSQL数据库,旨在在不牺牲性能或可查询性的前提下提供灵活的数据建模——可扩展。
此库是PHP的客户端,允许您与Skytable服务器进行交互。使用起来非常简单。
以下是一个创建Skytable连接的示例
<?php $connection = new \Skytable\Connection('127.0.0.1', 2003);
带连接的Skytable客户端
客户端需要创建一个连接。客户端有方法可以向服务器发送命令。
<?php $connection = new \Skytable\Connection('127.0.0.1', 2003); $client = new \Skytable\Client($connection);
运行基本命令
创建连接后,您可以使用客户端运行基本命令。
<?php $response = $client->heya(); $response = $client->whereami();
您可以在Client类注释中找到命令列表。
运行多个命令
要运行多个命令,您需要使用ActionBuilder。每个命令都有自己的类。您需要初始化命令并将其作为有效载荷添加到ActionBuilder中。
<?php $builder = new ActionsBuilder(); $builder->add((new \Skytable\Action\Sys\Metric\Storage())); $builder->add((new \Skytable\Action\Sys\Metric\Health())); $response = $client->execute($builder);
连接后的初始命令
在创建连接时,您还可以指定一个回调,以在连接后运行第一个命令。
$connection = new Connection('127.0.0.1', 2003, static function($connection) { $payload = new ActionsBuilder(); $payload->add(new \Skytable\Action\Create\Table('queue', 'keymap(str, list<str>)')); $payload->add(new \Skytable\Action\Select('default:queue')); });
管理队列
要创建队列,您需要创建一个具有keymap
模型的表。
<?php $skytable->create_table('queue', 'keymap(str,list<str>)'); $skytable->select('default:queue'); $skytable->lmod_push('queue', '1'); $skytable->lmod_push('queue', '2'); $skytable->lmod_push('queue', '3'); $skytable->lmod_push('queue', '4'); var_dump($skytable->lmod_pop('queue')); var_dump($skytable->lmod_rpop('queue')); var_dump($skytable->lget('queue'));