10. PHP интерфейс ‐ Конструктор
Tarantool
$tnt = new Tarantool($host,$port,$admPort);
$host – хост (def: localhost);
$port – порт (def: 33013);
$admPort – административный порт (33015).
11. PHP интерфейс ‐ INSERT
Tarantool
define( ‘NS’,0);
// номер namespace
$tnt = new Tarantool();
$tuple = array(12345,‘spb’,’Hello Word’);
$res = $tnt->insert(NS, $tuple);
Если данные существуют – они замещаются
Возвращается результат true- успех / false...
12. PHP интерфейс ‐ DELETE
Tarantool
$tnt = new Tarantool();
$res = $tnt->delete(NS, $key, [$flag]);
1)Удаление всегда по первичному ключу
2) $flag = true – возвращать данные (def: $flag = false)
Возвращает: true/false – результат операции
или данные (массив) если $flag = true
13. PHP интерфейс ‐ UPDATE
Tarantool
$tnt = new Tarantool();
$data = array(1=>’msk’, 2=> ‘Hello Hi++!’);
$res = $tnt->update(NS, $key, $data);
1)$key – всегда первичный ключ
2) $data – асс. массив № поля => нов. значение
Возвращает результат операции : true=успех/false...
14. PHP интерфейс ‐ INC (update)
Tarantool
$tnt = new Tarantool();
$res = $tnt->inc(NS, $key, $fieldNo, [$delta, $flag]);
1)$key – всегда первичный ключ;
2) $fieldNo – номер инкременитируемого поля тип Num;
3) $delta – инкрементируемое значение (def: $delta = 1);
4) $flag = true – возвращать данные (def: $flag = false);
Возвращает результат операции : true=успех/false ...
или новые данные если $flag = true
15. PHP интерфейс ‐ SELECT
Tarantool
$tnt = new Tarantool();
$count = $tnt->select(NS, $indexNo, $key,[ $limit, $offset]);
1)$key – ключ, если используем составной то массив;
2) $indexNo – номер индексного поля, по которому
осуществляется выборка;
3) def: $limit = хFFFFFFFF; ,def: $offset = 0;
Возвращает: кол-во найденных кортежей,
Выборка данных осуществляется методом getTuple();
16. PHP интерфейс ‐ MSELECT
Tarantool множественный выбор
Является аналогом mget($keys) в memcache
или: SELECT * FROM t0 WHERE key IN ($keyList);
$count = $tnt->mselect(NS, $indexNo, $keys,[ $limit, $offset]);
1)$keys –массив ключей;
2) $indexNo – номер индексного поля, осуществляется выборка;
3) $limi , $offset – аналог метода select();
Возвращает: кол-во найденных кортежей, false- ошибка
Выборка данных осуществляется методом getTuple();
17. PHP интерфейс – прочие методы
Tarantool
getTuple() – возвращает данные методов
select() и mselect();
getError() – описание ошибки последней операции
getConf() – конфигурационный файл сервера
getInfo() – переменные сервера
getStat() – информация по статистики сервера
18. Паттерн: справочник
Field 0 , Primary index (PK)=0 Field1 = Name
11-22-33-44 Маня
11-22-33-55 Ваня
11-22-33-66 Таня
Аналог key/value
Доступ осуществляется по первичному ключу;
Возвращается один кортеж;
SQL аналог:
SELECT * FROM T0 WHERE key0=$key
20. Паттерн: обратный справочник
Field 0 , Primary index (PK)=0 Field1 = Name
INDEX 1
11-22-33-44 Маня
11-22-33-55 Ваня
11-22-33-66 Таня
Доступ осуществляется по вторичному ключу;
Возвращается массив кортежей;
SQL аналог:
SELECT * FROM T0 WHERE key1=$key
22. Паттерн: справочник с разделами
поиск по одному разделу
Field 0, Primary index Field1 = Name Field2 = City
INDEX=0 (PK) INDEX=2
11-22-33-44 Маня SPB
11-22-33-55 Ваня MSK
11-22-33-66 Таня SPB
Представляет денормолизованное отношение
Один ко Многим
Cтроится индекс по разделу
Доступ осуществляется по вторичному ключу;
SQL аналог:
SELECT * FROM T0 WHERE key1=$key
24. Паттерн: справочник с разделами
выборка по нескольким разделам
Field 0, Primary Field1 = Name Field2 = City Field3=Sex
index (INDEX=3) INDEX=3
(PK)=0
11-22-33-44 Маня SPB Ж
11-22-33-55 Ваня MSK M
11-22-33-66 Таня SPB Ж
11-22-33-77 Саня SPB M
Cтроится составной индекс по двум и более полям;
Доступ осуществляется по вторичному ключу;
SQL аналог:
SELECT * FROM T0 WHERE (Field2=$city AND Field3=$sex)
25. Паттерн: Матрица
x M
Х
Матрица [M x N]
Po = (x,y)
y Po
Key = y * M + x
N
Y
28. Паттерн: Автоинкрементная таблица
Field 0 (PK) Field 1 = Phone Field2 = Name
1 11-22-33-44 Маня
2 11-22-33-55 Ваня
3 11-22-33-66 Таня
4 Новая строка
При каждой вставки увеличиваем PK на 1
Аналог Autoincrement в MySQL
или SEQUENCE
32. Паттерн: Очередь
PK
...
Data 1
Begin Pointer
Data 2
End Pointer Data 3
Принцип FIFO - Первый пришел, первый ушел
Реализуется через два указателя на начало и конец
очереди