Hitri začetek
PHP
use Storh\DocStore;
use Storh\Queue;
use Storh\RecordQuery;
use Storh\SegmentedLog;
use Storh\StorageRoot;
$root = StorageRoot::resolve(__DIR__ . '/var/storh', 'demo');
$docs = new DocStore($root, 'pages');
$home = $docs->put([
'kind' => 'page',
'title' => 'Home',
]);
$loaded = $docs->get($home->id());
$log = new SegmentedLog($root, 'events');
$log->put([
'type' => 'page.saved',
'pageId' => $home->id(),
]);
foreach ($log->stream(RecordQuery::all()->after($home->id())->limit(50)) as $record) {
// Process records lazily.
}
$queue = new Queue($root, 'jobs');
$jobId = $queue->enqueue(['task' => 'render', 'pageId' => $home->id()]);
$job = $queue->claim();
if (null !== $job) {
$queue->complete($job->id());
}
Vsi trije pogoni shranjujejo polja kot vsebine zapisov in vračajo objekte StorageRecord z dostopniki id() in data().
Obe shrambi ponujata tudi gradnik poizvedb z veriženjem metod:
PHP
$pages = $docs
->query()
->where('kind')->eq('page')
->orderBy('title')
->limit(20)
->get();
Kam naprej:
- Izbira pogona, da ugotovite, katera shramba ustreza kateri obremenitvi
- Indeksi pred filtriranjem zbirk z več kot nekaj tisoč zapisi
- SQL Zrcalo za združevanje, iskanje in poročanje v SQL