Redis 3 – wykorzystanie struktur danych
Czas czytania:
Redis udostępnia kilka podstawowych struktur danych. Należą do nich pola typu: tekst, lista, zbiór jako nieuporządkowana kolekcja tekstów, sortowane zbiory oraz hash’e.
Poniżej omówimy krótko każdy z nich.
Na początku jednak należy zainstalować środowisko Redis oraz bibliotekę PHP do jego obsługi. Po zainstalowaniu możemy zaczynać.
A by połączyć się z bazą tworzymy nowy obiekt i podając parametry łączymy się:
$obj = new Redis(); $obj->connect('127.0.0.1','6379',30);
1. Aby dodać zwykły tekst do bazy należy wykonać następującą funkcję
$obj->set(key,value); //gdzie key oznacza klucz po którym będziemy szukać, a value wartość składowaną.
przykład:
$obj->set('country','Poland');
Gdy chcemy zwrócić wartość z bazy wykorzystujemy funkcję get:
$obj->get(key); //podając jako key wcześniej utworzony klucz echo $obj->get('country'); //zwróci ciąg znaków 'Poland'
2. Dodawanie/usuwanie elementów z listy.
Aby wykonywać powyższe operację mamy przygotowane odpowiednie funkcje:
lPush – dodanie elementu do początku listy
rPush – dodanie elementy do końca listy
lPop – usunięcie elementu z początku listy oraz zwrócenie go
rPop – usunięcie elementu z końca listy oraz zwrócenie go
Utwórzmy więc prostą listę krajów.
$obj->lPush('countries','Poland'); // [Poland]
$obj->lPush('countries','Mexico'); // [Mexico,Poland]
$obj->lPush('countries','Canada'); // [Canada,Mexico,Poland]
$obj->rPush('countries','Panama'); // [Canada,Mexico,Poland,Panama]
$obj->rPush('countries','USA'); // [Canada,Mexico,Poland,Panama,USA]
Aby pobrać listę w danym zakresie możemy wykorzystać funkcję
$obj->lGetRange('countriees',1,2); //[Mexico,Poland]
Jeśli chcemy pobrać i usunąć zdjąć z listy:
echo $obj->lPop('countries); //Canada oraz zostanie nam lista [Mexico,Poland,Panama,USA]] echo $obj->rPop('countries); //USA oraz zostanie nam lista [Mexico,Poland,Panama]
Do obsługi lista biblioteka udostępnia szereg innych funkcji z którymi warto się zapoznać.
3. Jeśli chcemy zdefiniować zbiór wykorzystujemy funkcję
$obj->sAdd(key,value1,value2,value3,...);
$obj->sAdd('cities','Warsaw','Paris','London');
Utworzony zbiór dostaniemy jako wynik funkcji
$obj->sGetMembers('cities'); //[Warsaw,Paris,London]
Do utworzonego zbioru możemy później także dodawać elementy
$obj->sAdd('cities','Budapest');
4. Zbiory sortowane różnią się od zwykłych tym że podajemy wagę przy każdej wartości.
Analogicznie do poprzedniego przykładu
$obj->zAdd(key,score1,value1,score2,value2,score3,value3,...);
$obj->sAdd('cities',10,'Warsaw',100,'Paris',50'London');
Wartości możemy pobrać standardowo w danym zakresie:
$obj->zRange('cities',0,3); //[Warsaw,Paris,London]
lub filtrując po wagach
$obj->zRangeByScore('cities',20,100); //[London,Paris]
5. Kolejnym elementem są hash’e.
Są to tzw. mapowania między kluczami a wartościami. Za ich pomocą możemy tworzyć bardziej rozbudowane struktury danych.
Dostępne są m. innymi następujące funkcje:
hSet – dodanie pary (klucz,watość ) do danego klucza
hGet – pobranie pary (klucz,wartość) danego klucza
hGetAll – pobranie wszystkich par danego klucza
hDel – usunięcie klucza z obiektu
Utwórzmy więc obiekt definiujący osobę.
$obj->hSet('person','firstname','Jan');
$obj->hSet('person','surname','Kowalski');
$obj->hSet('person','email','lp.ik1732204430slawo1732204430k@naj1732204430');
Aby pobrać konkretną własność możemy to zrobić w następujący sposób
$obj->hGet('person','surname');
lub wszystkie własności:
$obj->hGetAll('person');
Jeśli chcemy dodać od razu kilka własności możemy wykorzystać funkcję:
$obj->hMSet('person', [
'firstname' => 'Adam',
'surname' => 'Adamowski',
'email' => 'lp.ik1732204430swoma1732204430da@ma1732204430da1732204430',
]);
To tylko kilka prostych przykładów które obrazują możliwości Redisa. Zachęcamy do realizacji bardziej zaawansowanych problemów przy użyciu tej technologi jak również do szczegółowego zapoznania się z nią.
Na pewno jest ona ciekawą technologią alternatywną do standardowych relacyjnych baz danych, memcache , mongoDB itp.
Zainteresował Cię ten artykuł?
Może Cię również zainteresować:
5 rzeczy, na które warto zwrócić uwagę, wybierając dedykowany system klasy ERP, WMS lub LMS
Tworzenie dedykowanych aplikacji web’owych (dostępnych przez przeglądarkę WWW z poziomu komputera, tabletu czy telefonu) jest… Read More
Warsztaty Discovery – 5 powodów dla których warto je przeprowadzić
Post pochodzi bezpośrednio z naszych oficjalnych kanałów na Social Media. W dynamicznym… Read More
Optymalizacja eCommerce vs. Zewnętrzny Dyrektor Technologiczny
🛠️ Studium przypadku 🛠️Post pochodzi bezpośrednio z naszych oficjalnych kanałów na Social… Read More