hkulekci/skytable-php

此库是PHP的客户端,允许您与Skytable服务器进行交互。

dev-master 2023-01-10 04:24 UTC

This package is auto-updated.

Last update: 2024-09-10 07:40:16 UTC


README

codecov

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'));