Bazy klucz-wartość. Redis
|
|
- Feliks Biernacki
- 7 lat temu
- Przeglądów:
Transkrypt
1 azy klucz-wartość. Redis 1/97 Bazy klucz-wartość. Redis Technologie Zarządzania Treścią dr inż. Robert Perliński Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej 8 listopada 2017
2 Bazy klucz-wartość. Redis 2/97 Plan prezentacji 1 Bazy klucz-wartość 2 Kilka słów o Redis 3 Polecenia w Redis 4 Redis w Node.js 5 Skrypty Lua 6 Narzędzia 7 Źródła
3 Bazy klucz-wartość. Redis 3/97 Bazy klucz-wartość Bazy klucz-wartość: najprostsze z baz NoSQL, przechowujemy dane (wartości) z identyfikatorami nazywanymi kluczami, jest to bardziej rozbudowany wariant tablicy (rozluźnione ograniczenia tablicy i trwały zapis jej danych), używane kiedy łatwość zapisu i pobierania danych jest ważniejsza od skomplikowanej struktury danych, wymagana jest unikalnośc każdego klucza w ramach przestrzeni nazw (kubełek, baza danych, kolekcja), trzy zalety: prostota, szybkość działania, skalowalność.
4 Bazy klucz-wartość. Redis 4/97 Od tablic do baz klucz-wartość Od tablic do baz klucz-wartość tablica - uporządkowana lista wartości, każda wartość jest pod określonym indeksem (liczbą całkowitą), wszystkie dane są tego samego typu, tablica asocjacyjna - podobna do zwykłych tablic ale indeksowana nie tylko liczbami całkowitymi, przechowuje wartości różnego typu, indeksem (kluczem) może być wiele typów danych, pamięć podręczna - tablica asocjacyjna wykorzystywana do szybkiego dostępu do danych (ale bez trwałego zapisywania ich), baza klucz-wartość - wydajność pamięci podręcznej z trwałym zapisem danych na nośniku.
5 Bazy klucz-wartość. Redis 5/97 Funkcjonalności baz klucz-wartość Prostota: wykorzystywanie minimalnych struktur danych - dodatkowe funkcjonalności mogą być po prostu niepotrzebne, zawsze można do bazy dodać nowe atrybuty, prosty model danych - prosta manipulacja na danych, zazwyczaj nie ma kontroli typów - ten sam atrybut może przechowywać np. liczby i napisy, proste struktury danych szybko działają.
6 Bazy klucz-wartość. Redis 6/97 Funkcjonalności baz klucz-wartość Szybkość: oferują wysoką przepustowość dla intensywnych operacji na danych, często przechowują dane w pamięci operacyjnej - bardzo szybki odczyt i zapis, większa ilość danych niż wielkość RAM oznacza konieczność zarządzania danymi w pamięci: kompresja, algorytmy zwalniania pamięci, np. LRU (ang. least recently used), przykład: porzucony koszyk sklepowy. Skalowalność: dodawanie lub usuwanie serwerów z klastra, które jak najmniej zaburza jego działanie, różne rodzaje replikacji: master-slave albo bez serwera głównego.
7 Bazy klucz-wartość. Redis 7/97 Klucze Wykorzystanie kluczy: indeksowanie, identyfikowanie, inne sposoby odnajdowania wartości. Muszą być unikatowe w ramach przestrzeni nazw. Mogą być bardzo proste ale nie muszą... Konstruowanie kluczy raz utworzony klucz nie powinien się zmieniać, klucz KOWALSKI J SL dla Jana Kowalskiego mieszkającego w woj. śląskiem nie jest dobrym pomysłem, w bazach relacyjnych, w tabelach klucze są nieznaczące, w bazach NoSQL klucz jest jedynym sposobem dotarcia do wartości, wykorzystuje się tworzenie znaczących kluczy, które przechowują informację o atrybutach, np. klient:12345:nazwisko, wzór na tworzenie klucza: nazwa encji + : + identyfikator encji + : + atrybut encji, znak rozdzielający może być dowolny.
8 Bazy klucz-wartość. Redis 8/97 Jak działają klucze Wykorzystywane są funkcje mapujące liczby całkowite, ciągi znaków czy nawet listy obiektów na unikatowy ciąg znaków lub liczbę. Służą do tego funkcje haszujące. Nie wszystkie bazy klucz-wartość jako klucz wspierają listy i inne rozbudowane struktury. Niektóre są bardziej restrykcyjne. Funkcje haszujące mogą czasem powodować kolizje ale generalnie są wystarczające. Klucz klient:12345:imie klient:12345:nazwisko klient:12345: klient:12345:adres Hasz a8e4ce250861d b da8fa8a8b9b a2ccff512db1593b94f96c65bece8c846f fb6b99c8a3bad6a13e9c5e79219f4f2c73e34165 ce605bbaf97de5de5ea19355fa6340dd14b25777
9 Bazy klucz-wartość. Redis 9/97 Unikanie problemów z zapisem Hasz może określać na którym serwerze w klastrze trzeba zapisać wartość związaną z kluczem. Przy kontroli zapisu tych samych danych na różnych serwerach w klastrze można ułożyć klucze tak, żeby zawsze ten sam klucz był zapisywany na tym samym serwerze. W ten sposób nie będzie kolizji, np. bilety z miejscem na różnych imprezach w określonym dniu, miejsce 12 rząd 5 w Multikino Częstochowa sala : M12:R5:Multi:Czest:180712). Klucze są mapowane do serwerów za pomocą modulo, albo jakoś inaczej - ale ten sam klucz jest zawsze zapisywany na tym samym serwerze.
10 Bazy klucz-wartość. Redis 10/97 Wartości w bazie klucz-wartość Bazy klucz-wartość: nie wymagają definiowania typów przechowywanych wartości, opierają wszystkie wykonywane operacje na kluczach, za pomocą klucza wstawiamy, pobieramy i usuwamy wartości, wyszukiwanie danych po zawartości należy obsłużyć w aplikacji, niektóre zawierają mechanizm indeksowania wartości i wyszukiwania w nich.
11 Bazy klucz-wartość. Redis 11/97 Redis Redis (skrót od REmote DIctionary Server) jest: serwerem struktur danych (struktury danych), jest projektem open-source (na licenscji BSD), jest rozproszony (ang. networked), Co to jest Redis? przechowuje dane w pamięci operacyjnej (ang. in memory), przechowuje klucze z opcjonalną trwałością (ang. durability), jest najpopularniejszą bazą danych klucz-wartość (zgodnie z rankingami na DB-Engines.com). pierwsze wydanie miało miejsce 10 kwietnia 2009 roku.
12 Bazy klucz-wartość. Redis 12/97 Redis - informacje ogólne Redis: jest systemem do przechowywania struktur danych w pamięci operacyjnej, jest używany jako baza danych, pamięć buforująca albo jako pośrednik/asystent przekazywania komunikatów (and. message broker), ma wbudowanie powielanie danych (replikację), wspiera skrypty w Lua, wspiera usuwanie najmniej używanych starych danych (LRU eviction - least recently used), ma wbudowaną obsługę transakcji, ma wbudowane różne poziomy utrwalania danych na dysku, dostarcza wysoki poziom dostępności dzięki Redis Sentinel, udostępnia automatyczne partycjonowanie dzięki Redis Cluster.
13 Bazy klucz-wartość. Redis 13/97 Redis - wspierane struktury danych Redis wspiera różne struktury danych (nie tylko string) takie jak: napisy (string) - jeden prosty element, rozpoznawane są liczby całkowite i zmiennopozycyjne, bitmapy - działają na napisach ale są specjalne operacje binarne, listy - kolekcja elementów, mogą się powtarzać, kolejność jest ważna, zbiory - kolekcja elementów, nie powtarzają się, nie ma kolejności, zbiory posortowane - kolekcja elementów, nie powtarzają się, każdy element ma przypisaną liczbę zmiennopozycyjną - punktacja, o kolejności elementów decyduje punktacja, tabice asocjacyjne (hashes) - klucz zawiera zbiór pól z przypisanymi wartościami, dane hyperloglogs - używane do przybliżania liczności zbiorów, dane geoprzestrzenne - operacje na danych przestrzennych Ziemi. Typ danych definiuje jakie operacje są dostępne dla tych danych.
14 Bazy klucz-wartość. Redis 14/97 Redis - informacje ogólne Redis: jest napisany w ANSI C, działa na większości systemów POSIX takich jak Linux, *BSD czy OS X bez zależności zewnętrznych, jest projektowany na systemach Linux i OS X i tam jest testowany, jest rekomendowany do wdrażania na Linuxie, może działać na systemach z rodziny Solaris, np. SmartOS ale może wymagać dużego zaangażowania fachowej pomocy, nie ma oficjalnego wsparcia dla Windows, ale Microsoft tworzy i utrzymuje port do Redis (Win-64).
15 Bazy klucz-wartość. Redis 15/97 Redis - operacje na typach danych Redis wspiera wysokopoziomowe operacje atomowe po stronie serwera. Przykłady takich operacji: dopisanie danych do napisu, dodanie elementu do listy, zwiększenie wartości w tablicy haszowanej, obliczenie przecięcia, sumy czy różnicy zbiorów, uzyskanie elementu z najwyższym rankingiem ze zbioru posortowanego.
16 Bazy klucz-wartość. Redis 16/97 Redis - działanie Redis działa na danych w pamięci operacyjnej. Zależnie od zastosowania, można utrwalić dane: poprzez zrzucenie obrazu danych na dysk co jakiś określony czas, poprzez dodawanie każdej komendy do dziennika (log). Utrwalanie danych na dysku można wyłączyć, jeśli jest potrzebne bogate w funkcjonalność, dostępne poprzez sieć buforowanie danych. Redis wspiera banalne w przeprowadzeniu asynchroniczne replikacje danych master-slave: z bardzo szybką nieblokującą pierwszą synchronizacją, z automatycznym ponownym połączeniem przy częściowej ponownej synchronizacji po przerwaniu sieci.
17 Bazy klucz-wartość. Redis 17/97 Inne cechy Redis Inne cechy Redis: automatyczna obsługa pracy awaryjnej (serwer podrzędny staje się nadrzędnym), klucze z ograniczonym czasem życia, transakcje (atomowość i izolacyjność), MULTI - rozpoczyna blok poleceń będących transakcją, EXEC - wykonuje wszystkie zapisane w kolejce transakcji polecenia, połączenie wraca do normalnego stanu, kiedy użyto WATCH, EXEC zadziała tylko kiedy podane klucze nie zostały zmienione, DISCARD - czyści kolejkę instrukcji zapisanych w transakcji, połączenie wraca do normalnego stanu, WATCH key [key...] - oznacza podane klucze do kontroli przy warunkowym wykonaniu transakcji, UNWATCH - usuwa wszystkie oznaczenia kluczy określone w WATCH.
18 Bazy klucz-wartość. Redis 18/97 Trwałość danych I Redis przechowuje dane w pamięci operacyjnej w sposób charakterystyczny dla siebie. Uniemożliwia to przechowywanie (przynajmniej narazie) danych większych niż zawartość pamięci operacyjnej (RAM). Do wersji 2.4 można było pewne dane przechowywać na dysku ale obecnie jest to porzucone i odradzane. Trwałość danych osiąga się obecnie na dwa sposoby: poprzez robienie migawek (ang. snapshot), bezpieczniejsza alternatywa - AOF (Append-only file). Domyślnie Redis zapisuje dane na dysku co 2 sekundy (są opcje do zmiany tego). W przypadku awarii utraconych może być tylko kilka sekund zmian danych.
19 Bazy klucz-wartość. Redis 19/97 Trwałość danych II Robienie migawek (ang. snapshot): czyli asynchronicznych zapisów stanu bazy na dysku wykonywanych co jakiś określony czas, zapisywane daną są składowane w formacie RDB Dumb Format (*.rdb) - binarna reprezentacja zawartości pamięci na dysku, wystarcza to do odtworzenia stanu bazy, AOF (Append-only file): bezpieczniejsza alternatywa dostępna od wersji 1.1 jest to dziennik (ang. journal), który zapisuje wszystkie zmiany wykonywane w bazie, pozwala wrócić do jakiegokolwiek wcześniejszego stanu, Redis potrafi poprawiać/przepisywać na nowo AOF w tle w celu uniknięcia nieskończonego zwiększania się dziennika.
20 Bazy klucz-wartość. Redis 20/97 Powielanie danych I Redis wspiera replikację master-slave: dane z jakiegokolwiek serwera Redis mogą być powielane do dowolnej liczby serverów podporządkowanych, serwer B podporządkowany serwerowi A, sam może być nadrzędnym dla kolejnego serwera C, pozwala to na utworzenie drzewa replikacji o jednym korzeniu. Serwery podporządkowane Redis: mogą być skonfigurowane tak, że będą przyjmować zapis danych pozwalając na umyślną czy nieumyślną (zaplanowaną lub nie) niespójność danych między instancjami serwerów.
21 Bazy klucz-wartość. Redis 21/97 Powielanie danych II Redis: ma w pełni zaimplementowany wzorzec przesyłania wiadomości (Publish/Subscribe), klient serwera podrzędnego może pobierać wiadomści wysyłane do serwera nadrzędnego gdziekolwiek w drzewie replikacji. Powielanie danych jest przydatne w skalowaniu odczytu danych (ale już nie zapisu) albo przy nadmiarowości danych.
22 Bazy klucz-wartość. Redis 22/97 Wydajność Kiedy trwałość danych nie jest konieczna, baza Redis, jako przechowująca dane w pamięci operacyjnej, jest wyjątkowo wydajna w porównaniu z systemami baz danych, które zapisują każdą zmianę na dysku zanim uznają transakcje za zatwierdzoną. Nie ma jakiejś znacznej różnicy między czasem odczytu i zapisu. Redis działa na jednym procesie i jest jednowątkowy - jedna instancja bazy Redis nie może wykorzystać równolegle wykonujących się zadań.
23 Bazy klucz-wartość. Redis 23/97 Działanie w klastrze Redis pracujący na klastrze: jest przystosowany do działania w klastrze, jest to funkcjonalność rozwijana od roku 2013,
24 Bazy klucz-wartość. Redis 24/97 Działanie w klastrze Działanie w klastrze: pozwala na automatyczny podział przestrzeni kluczy, prowadzone na bierząco, na gorąco dzielenie danych na cześci, kontynuowanie operacji nawet przy niesprawnych niektórych węzłach klastra. Redis Cluster - rozproszona implementacja bazy Redis zapewniająca: wysoką wydajność i liniowe skalowanie do 1000 węzłów, brak proxy, asynchroniczną replikację, akceptowalny poziom bezpieczeństwa zapisu - wymagana większość serwerów master, wysoką dostępność, automatyczne przydzielanie węzłów podrzędnych przy awarii, wewnętrzne wersjonowanie zapobiegające konfliktom, promowanie do bycia serwerem nadrzędnym, wybór serwera podrzędnego,
25 Bazy klucz-wartość. Redis 25/97 Współpraca z różnymi językami programowania Redis współpracuje w bardzo wieloma językami programowania, większość z nich pozwala na połączenie się z Redis za pomocą więcej niż jednej, ciągle rozwijanej biblioteki: ActionScript Bash C C# C++ Clojure Common Lisp Crystal D Dart Delphi Elixir emacs lisp Erlang Fancy gawk GNU Prolog Go Haskell Haxe Io Java Julia Lasso Lua Matlab mruby Nim Node.js Objective-C OCaml Pascal Perl PHP Pure Data Python R Racket Rebol Ruby Rust Scala Scheme Smalltalk Swift Tcl VB VCL Dostępna jest również długa lista bibliotek, które nie są bibliotekami zbudowanymi na bazie API Redisa, ale są bibliotekami wysokiego poziomu, jak ORM, czy biblioteki przesyłające komunikaty, które są zaprojektowane dla Redis.
26 Instalacja i uruchomienie Instalacja: pobieramy najnowszą wersję ze strony producenta: rozpakowujemy, przechodzimy do utworzonego katalogu (redis-4.0.2), make, make test - po utworzeniu warto zrobić testy, make install - jeśli mamy prawa roota. Używanie: redis-server - uruchamianie serwera, redis-benchmark - wbudowany test wydajności (ponad zapytań na sek.; wszystkie zapytania poniżej 2 ms), redis-cli - tryb poleceń do zabawy z Redis, redis-check-rdb - sprawdzanie obrazów binarnych bazy. Włączanie/wyłączanie serwera Redis: /etc/init.d/redis-server start stop restart Bazy klucz-wartość. Redis 26/97
27 Bazy klucz-wartość. Redis 27/97 redis-cli Interfejs linii poleceń bazy Redis (ang. the Redis command line interface) pozwala wysyłać polecenia na serwer i odczytywać odpowiedzi, pracuje w dwóch głównych trybach: interakcyjnym (pętla REPL - Read Eval Print Loop), poleceniowym - polcenia jako argumenty redis-cli pozwala też na: symulacja serwera podrzędnego z wyświetlaniem strumienia od komputera nadrzędnego, monitorowanie opóźnień serwera z wyświetlaniem statystyk, wiele innych...
28 Bazy klucz-wartość. Redis 28/97 redis-cli - tryb jednego polecenia, opcje Różne sposoby użycia redis-cli: tryb jednego polecenia: $ redis-cli incr licznik (integer) 7 przekierowanie wyjścia: $ redis-cli incr licznik > /tmp/wyjscie.txt $ cat /tmp/wyjscie.txt 8 opcje: host (-h), port (-p), hasło (-a) i baza danych (-n): $ redis-cli -h redis c10.us-east-1-3.ec2.cloud.redislabs.com -a abc123 -p $ redis-cli -n 3 -a abc123
29 Bazy klucz-wartość. Redis 29/97 redis-cli - przekierowanie wejścia Różne sposoby użycia redis-cli: przekierowanie wejścia (opcja -x, ostatni argument będzie zawierał dane przekierowane ze standardowego wejścia), polecenia: $ redis-cli -x set linux < /etc/issue $ uname -a redis-cli -x set linux tworzą dwa klucze (linux, linux2) z zawartością: $ redis-cli get linux "Linux Mint 18 Sarah \\n \\l\n\n" $ redis-cli get linux2 "Linux nowak generic #50-Ubuntu SMP Wed Jul 13 00:07:12 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux\n"
30 Bazy klucz-wartość. Redis 30/97 redis-cli - wiele poleceń z jednego pliku Różne sposoby użycia redis-cli: wiele poleceń z jednego pliku $ cat polecenia.txt ECHO "Wykonuje pierwsze polcenie ECHO" SET przedmiot "rower gorski" SET PI INCRBYFLOAT PI 10 GET przedmiot wywołanie poleceń na redis-cli: $ cat polecenia.txt redis-cli "Wykonuje pierwsze polcenie ECHO" OK OK " " "rower gorski"
31 Bazy klucz-wartość. Redis 31/97 redis-cli - wielokrotne powtarzanie tego samego polecenia Różne sposoby użycia redis-cli: możliwe jest wielokrotne powtarzanie tego samego polecenia, opcja -r określa liczbę powtórzeń, opcja -i oreśla przestoje między powtórzeniami w sekundach, można podawać ułamki, polecenie: $ redis-cli -r 10 -i 0.45 incr licznik zwiększy 10 razy zmienną licznik w odstępach 450 msec: (integer) 1 (integer) 2 (integer) 3 (integer) 4 (integer) 5 (integer) 6 (integer) 7 (integer) 8 (integer) 9 (integer) 10
32 Bazy klucz-wartość. Redis 32/97 redis-cli - masowe wstawianie danych Masowe wstawianie danych z redis-cli: potrzeba wczytania do bazy dużej ilości danych dostarczonych przez użytkownika, zależy nam na minimalnym czasie dodania milionów kluczy, generujemy plik tekstowy zawierający polcenia z formacie protokołu Redis, chcemy wstawić miliony kluczy w formie: kluczn --> wartośćn: SET Key0 Value0 SET Key1 Value1... SET KeyN ValueN jeśli dane (format protokołu Redis) będą w pliku data.txt to polecenie: cat data.txt redis-cli --pipe wykona polecenia na serwerze.
33 Bazy klucz-wartość. Redis 33/97 redis-cli - masowe wstawianie danych Masowe wstawianie danych z redis-cli: w terminalu bash dane z pliku data.txt trzeba przekazań jak poniżej: echo -e "$(cat data.txt)" redis-cli --pipe zawartość pliku data.txt: *3\r\n$3\r\nset\r\n$6\r\nklucz1\r\n$8\r\nwartosc1\r\n *3\r\n$3\r\nset\r\n$6\r\nklucz2\r\n$8\r\nwartosc2\r\n wyknane polecenia: set klucz1 wartosc1 set klucz2 wartosc2
34 Bazy klucz-wartość. Redis 34/97 Ustawienie serwera W domyślnej instalacji ustawienia serwera są w pliku /etc/redis/redis.conf. Można określić takie zakresy działania serwera jak: ogólne opcje serwera, np. ustawienie połączenia (adres IP i port), plik logów, dopuszczalna liczba baz danych, sposób wykonywania zapsiów bazy z pamięci na dysk (nazwa pliku, położenie, czestotliwość zapisu), zasady wykonywania replikacji, bezpieczeństwo dostępu (ustawienie hasła), określenie limitów (np. maksymalna liczba jednoczesnych połączeń czy wykorzystywanej pamięci), użycie skryptów LUA, obsługa klastrów, obsługa zdarzeń, inne zaawansowane ustawienia dotyczące np. sposobu generowania kluczy (haszowania) czy wymaganej szybkości odczytu danych z serwera.
35 Bazy klucz-wartość. Redis 35/97 Zabezpieczanie serwera Opcje z sekcji bezpieczeństwa z pliku /etc/redis/redis.conf: requirepass - pozwala ustalić hasło dostepu do bazy, będzie wymagane uwierzytelnienie poleceniem AUTH, requirepass supertajnehaslo4321 Szybkość bazy Redis pozwal intruzowi sprawdzić 150 tys. haseł na sekundę. Ustawiane hasło musi być bardzo silne. rename-command - pozwala zmienić nazwę wybranych poleceń na inne, trudne do zgadnięcia - dostępne tylko dla wybranych użytkowników, np.: rename-command CONFIG 3aeff6aecdd8086e539ba1dbb0fe411f808061bf rename-command FLUSHDB e5a6fd98f549b8096ee6bfc ffab rename-command FLUSHALL c7fc4df1fdfb70386bbe5709f28f0768c Można wyłączyć wybrane polecenie zmieniając nazwę na pusty napis, np.: rename-command CONFIG ""
36 Bazy klucz-wartość. Redis 36/97 Nauka Redis online - tutorial
37 Bazy klucz-wartość. Redis 37/97 Struktury danych w Redis Bazy klucz-wartość przechowują konkretną wartość pod wskazanym kluczem. Umieszczoną daną można odczytać tylko jeśli zna się dokładnie klucz. Polecenie SET umieszcza dane w bazie, GET odczytuje dane dla podanego klucza: > set user: "jankowalski@abc.com" OK > get user: "jankowalski@abc.com" Do usuwania kluczy i związanych z nimi wartościami służy DEL: > DEL user: (integer) 1 > get user: (nil)
38 Bazy klucz-wartość. Redis 38/97 Struktury danych w Redis SETNX (SET-if-Not-eXists) wstawia dane jeśli wcześniej ich nie było w bazie. INCR zwiększa o jeden wartość liczby umieszczonej pod podanym kluczem. Jest to operacja atomowa. Może tworzyć też zmienną. > setnx liczba 12 (integer) 1 > incr liczba (integer) 13 > get liczba "13" > SETNX liczba 123 (integer) 0 > get liczba "13" > incr licznik (integer) 1 > get licznik "1"
39 Bazy klucz-wartość. Redis 39/97 Struktury danych w Redis W Redis dane przechowywane w bazie mogą mieć określoną ważność czasową, po której upływie automatycznie są usuwane. EXPIRE ustawia czas ważności zmiennej. TTL (Time To Live) pozwala odczytać pozostały czas. > SET zmienna "Brak danych" OK > EXPIRE zmienna 30 (integer) 1 > TTL zmienna (integer) 24 > GET zmienna "Brak danych"... > GET zmienna (nil) > TTL zmienna (integer) -2 PTTL zwraca pozostały czas życia zmiennej w milisekundach.
40 Bazy klucz-wartość. Redis 40/97 Polecenie SET z opcjami SET key value [EX seconds] [PX milliseconds] [NX XX] Parametry: EX - ustala czas życia zmiennej w sekundach PX - ustala czas życia zmiennej w milisekundach NX - ustawia zmienną tylko, jeśli jeszcze nie istnieje XX - ustawia zmienną tylko, jeśli już istnieje > SET zmienna "Na 20 sekund" EX 20 XX (nil) > SET zmienna "Na 20 sekund" EX 20 NX OK > get zmienna "Na 20 sekund" > ttl zmienna (integer) :6379> ttl zmienna (integer) -2 > get zmienna (nil)
41 Bazy klucz-wartość. Redis 41/97 Polecenia W najnowszej wersji Redis jest 210 poleceń podzielonych na 14 grup: Cluster - zarządzanie klastrem Connection - odpowiadają za połączenie z serwerem, autoryzacja, Geo - pozwalają na pracę z danymi przestrzennymi, Hashes - praca z tablicą asocjacyjną, HyperLogLog Keys - obsługa kluczy, Lists - obsługa list, Pub/Sub - mechanizm przesyłania komunikatów, Scripting - przetwarzanie skryptów w Lua, Server - obsługa klientów, danych w pamięci, dostępne polecenia, Sets - obsługa zbiorów, Sorted Sets - obsługa posortowanych zbiorów, Strings - obsługa wartości prostych, operacje na napisach, operacje bitowe, Transactions - obsługa transakcji.
42 Bazy klucz-wartość. Redis 42/97 Polecenia - help W redis-cli polecenie help pozwala na uzyskanie informacji o poleceniach (indywidualnie albo w grupach), np.: $ help BGSAVE BGSAVE - summary: Asynchronously save the dataset to disk since: group: server $ AUTH password summary: Authenticate to the server since: ECHO message summary: Echo the given string since:
43 Bazy klucz-wartość. Redis 43/97 Polecenia z grupy Keys I DEL key [key...] - usuwa jeden/wiele kluczy, zwraca liczbę usuniętych kluczy, klucze nieistniejące zostaną pominięte, EXISTS key [key...] - sprawdza istnienie kluczy, zwraca liczbę klucz istniejących w bazie z tych podanych na liście, podanie dwa razy tego samego klucza dwukrotnie go policzy, EXPIRE key seconds - ustawia czas ważności klucza w sekundach, po upływie którego będzie on usunięty (klucz ulotny, niestabilny), KEYS pattern - zwraca wszystkie klucze pasujące do wzorca, powinien być używany tylko w środowisku produkcyjnym, może znacznie obniżyć wydajność, powinno się używać SCAN albo sets; wzorce: h?llo dopasowuje np. hello, hallo czy hxllo h*llo dopasowuje np. hllo czy heeeello h[ae]llo dopasowuje np. hello i hallo, ale nie hillo h[^e]llo dopasowuje np. hallo, hbllo,... ale nie hello h[a-b]llo dopasowuje hallo i hbllo
44 Bazy klucz-wartość. Redis 44/97 Polecenia z grupy Keys II MOVE key db - przenosi klucz z aktualnie wybranej bazy do bazy bazy określonej drugim parametrem, PERSIST key - usuwa ograniczenie czasowe dla podanego klucza, zmiena go z ulotnego na stały, RANDOMKEY - zwraca losowy klucz z bazy, dla pustej bazy zwraca nil, RENAME key newkey - zmiena nazwę klucza na nową, jeśli klucz nie istnieje zwraca błąd, jeśi nowa nazwa już istnieje to wartość pod tym kluczem zostanie usunięta (wywołanie DEL), SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern...]] [ASC DESC] [ALPHA] [STORE destination] - zwraca albo pobiera elementy w listach, zbiorach i zbiorach posortowanych przy podanym kluczu sortowania, TTL key - zwraca liczbę sekund, jaką klucz pozostanie jeszcze w bazie danych, zob. PTTL TYPE key - zwraca nazwę typu jakiego jest wartość pod danym kluczem, możliwe typy: string, list, set, zset, hash i none (jeśli klucz nie istnieje).
45 Bazy klucz-wartość. Redis 45/97 Polecenia z grupy Keys III SCAN, SSCAN, HSCAN, ZSCAN - polecenia pozwalają na iteracyjne przejście po kolekcji elementów: SCAN - iteruje po kolekcji kluczy w aktywnej bazie danych, SSCAN key cursor [MATCH pattern] [COUNT count] - przechodzi po kolekcji elementów zbioru, HSCAN key cursor [MATCH pattern] [COUNT count] - przechodzi po kolekcji elementów tablicy asocjacyjnej, ZSCAN key cursor [MATCH pattern] [COUNT count] - przechodzi po kolekcji elementów posortowanego zbioru. Polecenia nie muszą w jednym przebiegu zwracać wszystkich wartości kolekcji, zwykle zwracają tylko małą cześć całej kolekcji (nie blokują bazy jak KEYS czy SMEMBERS). Zwracana wartość oznacza aktualną pozycję kursora, od której zaczynamy przeszukiwanie następnym razem, np.: scan 0 scan 12 // zwraca np. wartość 12 i 12 pierwszych elementów // zwraca 0 i pozostałe klucze w bazie
46 Bazy klucz-wartość. Redis 46/97 Polecenia z grupy Strings I APPEND key value - pozwala na dopisanie do klucza podanej wartości (string), jeśli klucz nie istniej zostanie utworzony, GETRANGE key start end - zwraca część łańcucha spod podanego klucza z od położenia start do end (przesunięcie początkowe i końcowe), SETRANGE key offset value - nadpisuje wartość podanego klucza podaną wartością zaczynając od podanego przesunięcia, STRLEN key - zwraca długość napisu podanego klucza, musi być prosta (string), GET key - zwraca watość klucza, działa tylko dla prostych danych napisowych, nie działa dla list, zbiorów, GETSET key value - zwraca starą wartość umieszczoną pod podanym kluczem zastępując ją jednocześnie nową podaną wartością, operacja atomowa,
47 Bazy klucz-wartość. Redis 47/97 Polecenia z grupy Strings II INCR key - zwiększa wartość przechowywaną w podanym kluczu o 1, j.w., liczby całkowite są przechowywane w kluczach są zapisane z podstawą dziesiętną, ale przechowywane są w bazie jako liczby całkowite, DECR key - zmniejsza wartość przechowywaną w podanym kluczu o 1, musi być prosta (string) i musi być reprezentacją liczby całkowitej, INCRBY key increment, DECRBY key decrement, zwiększa, zmniejsza warość przechowywaną pod podanym kluczem o podany parametr increment, INCRBYFLOAT key increment - zwiększa wartość umieszczoną pod podanym kluczem, wartość musi być reprezentacją liczby zmiennopozycyjnej, MGET key [key...] - zwraca wartości wszystkich podanych kluczy, MSET key value [key value...] - ustawia wartości dla wszystkich podanych kluczy, operacja atomowa.
48 Bazy klucz-wartość. Redis 48/97 Polecenia z grupy Strings III - operacje bitowe GETBIT key offset - zwraca bit na pozycji offset, SETBIT key offset - ustawia bit na pozycji offset, BITPOS key bit [start] [end] - zwraca pozycję pierwszego bitu ustawionego na 0 albo 1, BITOP operation destkey key [key...] - wykonuje operacje bitowe na podanych kluczach, wynik zapisuje w destkey, dostępne operacje: AND, OR, XOR, NOT (przyjmuje tylko jeden klucz), BITCOUNT key [start end] - zlicza liczbę ustawionych bitów w podanym kluczu, można ograniczyć zakres bajtów, które będą sprawdzane, BITFIELD key [GET type offset] [SET type offset value] [INCRBY type offset increment] [OVERFLOW WRAP SAT FAIL] - polecenie traktuje napis jako tablicę bitów, pozwala odczytać, zapisać albo zwiększyć wybrany ciąg bitów:
49 Bazy klucz-wartość. Redis 49/97 Przykłady operacj bitowych > set bit "\x44" // szesnastkowo, wartość 68, binarnie OK > get bit // odpowiada znakowi D ASCII "D" > BITFIELD bit GET u2 0 1) (integer) 1 > BITFIELD bit GET u4 0 1) (integer) 4 > BITFIELD bit GET u6 0 1) (integer) 17 > BITFIELD bit GET u8 0 1) (integer) 68 BITFIELD bit SET i8 #0 67 // ustawiamy 8 bitów traktowanych jako integer 1) (integer) 68 // wartością 67, zwraca nam poprzednią wartość > get bit "C" > 2> BITCOUNT bit // 2 razy (2>) wykonuje BITCOUNT (integer) 3 (integer) 3 > SETBIT bit 5 1 // ustawia 6 bit na 1 (liczymy od lewej) (integer) 0 > get bit "G" // zwiększyło wartość o 4, z "C" zrobiło się "G"
50 Bazy klucz-wartość. Redis 50/97 Polecenia z grupy Lists I Każdy dowolny klucz może zacząć pracować jako lista, jeśli nie jest już innym typem danych. Polecenia do obsługi list: RPUSH key value [value...] - dodaje wartość/wartości do końca listy, LPUSH key value [value...] - dodaje wartość/wartości na początku listy, LLEN key - zwraca bieżącą długość listy umieszczonej w podanym kluczu, LRANGE key start stop - zwraca podzbiór listy; dwa parametry określają początek i koniec zwracanego podzbioru; drugi parametr o wartości -1 oznacza pobranie elementów do końca listy, LPOP key, RPOP key - usuwa pierwszy, ostatni element z listy i zwraca go, LTRIM key start stop - przycina listę zostawiając tylko elementy o indeksach od start do stop (włącznie),
51 Bazy klucz-wartość. Redis 51/97 Przykład pracy z listą > RPUSH zm "Basia" (integer) 1 > RPUSH zm "Daniel" (integer) 2 > LPUSH zm "Adam" (integer) 3 > LRANGE zm 0-1 1) "Adam" 2) "Basia" 3) "Daniel" > LRANGE zm 1 2 1) "Basia" 2) "Daniel" > LLEN zm (integer) 3 > LPOP zm "Adam" > RPOP zm "Daniel" > LLEN zm (integer) 1
52 Bazy klucz-wartość. Redis 52/97 Polecenia z grupy Lists II Każdy element listy ma indeks. Indeksy listy zaczynają się od 0. Licząc od końca indeksy zaczynają się od -1 (pierwszy od końca) "Ala" "kot" "ul" "pies" "dom" Pozostałe polecenia do obsługi list: LINDEX key index - zwraca element listy leżący na pozycji index, LREM key count value - zależnie od wartości count wykonuje: count=0 - usuwane są wszystkie elementy równe value count>0 - usuwanych jest count wystąpień elementu równego value licząc od początku, count<0 - usuwanych jest count wystąpień elementu równego value licząc od końca, LSET key index value - ustawia wartość pozycji na liście określonej indexem, LINSERT key BEFORE AFTER pivot value - dodaje element o podanej wartości do listy na przed/po pozycji pivot
53 Bazy klucz-wartość. Redis 53/97 Polecenia z grupy Sets I SADD key member [member...] - dodaje elementy/elementy do zbioru key, powtarzające się w zbiorze elementy są ingorowane, SCARD key - zwraca liczbę elementów w zbiorze, zwraca 0 jeśli zbiór o podanej nie istnieje, SDIFF key [key...] - zwraca elementy pierwszego zbioru po odjęciu elementów wszystkich kolejnych zbiorów, z jednym parametrem zwraca wszystkie elementy zbioru, SDIFFSTORE destination key [key...] - jak SDIFF ale zamiast zwracać elementy zapisuje je pod innym kluczem, SINTER key [key...] - zwraca elementy zbioru będące przecięciem wszyskich podanych zbiorów, przy jednym parametrze zwraca cały zbiór, SINTERSTORE destination key [key...] - jak SINTER ale zamiast zwracać zbiór zapisuje go pod innym kluczem, SISMEMBER key member - zwraca 1 albo 0 zależnie czy member elementem zbioru określonego podanym kluczem,
54 Bazy klucz-wartość. Redis 54/97 Polecenia z grupy Sets II SMEMBERS key - zwraca wszystkie elementy zbioru pod podanym kluczem, SMOVE source destination member - przenosi element ze zbioru źródłowego do docelowego, operacja atomowa, SPOP key [count] - usuwa i zwraca jeden lub więcej losowych elementów ze zbioru, podobne do SRANDMEMBER, SREM key member [member...] - usuwa jeden lub więcej elementów ze zbioru, SUNION key [key...] - zwraca elementy będące sumą wszyskich podanych zbiorów, z jednym parametrem zwraca cały zbiór, SUNIONSTORE destination key [key...] - jak SUNION ale zamiast zwrócić zbiór zapisuje go pod innym kluczem, SSCAN - przechodzi po kolekcji elementów zbioru.
55 Bazy klucz-wartość. Redis 55/97 Polecenia z grupy Sorted Sets I ZADD key [NX XX] [CH] [INCR] score member [score member...] - dodaje element/elementy razem z ich wartością porządkową (score) w formacie double, np. ZADD zbior 3.4 zeszyt 1.2 mazak -10 atrament ZCARD key - zwraca liczbę elementów w zbiorze, zwraca 0 jeśli zbiór o podanej nie istnieje, ZCOUNT key min max - zwraca liczbę elementów w zbiorze z wartością porządkową mieszczącą się w przedziale min max, ZCOUNT zz -inf +inf ZINCRBY key increment member - zwiększa wartość porządkową podanego elementu member o podaną wartość increment, podanie wartości ujemnej zmniejsza wartość porządkową, brak elementu w zbiorze tworzy go ustawiając wartość porządkową na increment, ZRANGE key start stop [WITHSCORES] - zwraca elementy podanego zbioru od pozycji start do stop (chodzi o numer elementu w zbiorze a nie o wartość prządkującą), ZRANK key member - zwraca numer elementu w zbiorze podanego jako drugi parametr, element pierwszy, najniższy rangą ma pozycję 0,
56 Bazy klucz-wartość. Redis 56/97 Polecenia z grupy Sorted Sets II ZREM key member [member...] - usuwa podane elementy ze zbioru, zwraca liczbę usuniętych elementów, ZREMRANGEBYRANK key start stop - usuwa wszystkie elementy ze zbioru zaczynając do numeru start do numeru stop, numeracja zaczyna się od 0, ZREMRANGEBYSCORE key min max - usuwa wszystkie elementy ze zbioru posiadające wartość porządkującą w przedziale min max, ZREMRANGEBYSCORE zz , ZSCORE key member - zwraca wartość porządkującą podanego elementu z podanego zbioru, ZUNIONSTORE destination numkeys key [key...] [WEIGHTS weight [weight...]] [AGGREGATE SUM MIN MAX] - wyznacza sumę zbiorów podanych jako argumenty key, trzeba podać liczbę zbiorów, które wystąpią - numkeys, wartości porządkujące tych samych elementów się sumują (SUM), jest brane maksimum (MAX) albo minimum (MIN), przy wartościach porządkowych można dodawać mnożnik (weight) inny do każdego zbioru, ZSCAN - przechodzi po kolekcji elementów zbioru.
57 Bazy klucz-wartość. Redis 57/97 Polecenia z grupy Hashes I - modyfikacja HSET key field value - tworzy pole (field) w podanym kluczu (key) o podanej wartości (value), HMSET key field value [field value...] - tworzy listę pól razem z podanymi wartościami w podanym kluczu, HSETNX key field value - ustawia wartość dla pola field tylko jeśli pole jeszcze nie istnieje, HDEL key field [field...] - usuwa pole/pola z tablicy asocjacyjnej określonej podanym kluczem, HINCRBY key field increment - zwiększa wartość liczby przechowywanej w field o increment dla podanego klucza, increment o wartości ujemnej zmniejsza liczbę, HINCRBYFLOAT key field increment - dla podanego klucza modyfikuje wartość pola field o podaną wartość increment (dodatnią lub ujemną),
58 Bazy klucz-wartość. Redis 58/97 Polecenia z grupy Hashes II - odczyt HGET key field - dla klucza key zwraca wartość związaną z polem field, HMGET key field [field...] - dla podanego klucza zwraca wartości związane z podanymi polami, jeśli klucz nie istnieje zwraca listę wartości nil, HGETALL key - zwraca listę wszystkich pól i ich wartości dla podanego klucza, lista: pole1, wartość1, pole2, wartość2,... (2 razy więcej niż pól) HEXISTS key field - zwraca 1 jeśli dla podanego klucza istnieje podane pole, HLEN key - zwraca liczbę pól przechowywanych w podanym kluczu, HSTRLEN key field - dla podanego klucza zwraca liczbę znaków wartości związanej z podanym polem, HKEYS key - zwraca listę wszystkich pól dla podanego klucza, HVALS key - zwraca listę wszystkich wartości dla podanego klucza, HSCAN - przechodzi po kolekcji elementów zbioru.
59 Bazy klucz-wartość. Redis 59/97 Przykład pracy tablicą asocjacyjną > HSET stud imie Wojciech (integer) 1 > HSET stud nazwisko Kasicki (integer) 1 > HMSET stud dataur plec M stypendium OK > HINCRBYFLOAT stud stypendium -100 "750" > HSTRLEN stud dataur (integer) 8 > HDEL stud plec (integer) 1 > HGETALL stud 1) "imie" 2) "Wojciech" 3) "nazwisko" 4) "Kasicki" 5) "dataur" 6) " " 7) "stypendium" 8) "750" > DEL stud (integer) 1
60 Bazy klucz-wartość. Redis 60/97 Polecenia z grupy Connection AUTH password - podawanie hasła do serwera, który wymaga hasła, ECHO message - zwraca podaną wiadomość, redis> ECHO "Hello World!" "Hello World!" redis> PING [message] - testowanie odpowiedzi serwera, bez argumentu zwraca PONG, redis> PING PONG redis> PING "hello world" "hello world" redis> QUIT - zamyka połączenie, zamyka redis-cli, SELECT index - zmienia bazę danych dla bieżącego połączenia, podaje się numer bazy; nowe połączenia zawsze używają numeru 0.
61 Bazy klucz-wartość. Redis 61/97 Polecenia z grupy Server I Jest aż 31 poleceń. Nie wszystie będę omawiał szczegółowo. CLIENT GETNAME - zwraca nazwę dla bieżącego połączenia jeśli taką ustawiono, CLIENT SETNAME connection-name - pozwala ustalić nazwę dla danego połączenia, może się przydać w celach np. usuwania błędów z klienta, CLIENT LIST - zwraca informacje i statystyki o klientach przyłączonych do serwera, CLIENT PAUSE timeout - pozwala zatrzymać polecenia wszystkich przyłączonych klientów na określoną liczbę milisekund, np. w celu zmiany serwera z podrzędnego na główny, CLIENT KILL [ip:port] [ID client-id] [TYPE normal master slave pubsub] [ADDR ip:port] [SKIPME yes/no] - polecenie zamyka określone parametrami połączenie klienta, CLIENT REPLY ON OFF SKIP - pozwala na wyłączenie odpowiedzi z serwera, czasem przydatne,
62 Bazy klucz-wartość. Redis 62/97 Polecenia z grupy Server II COMMAND - zwraca zagnieżdżoną tablicę opisującą wszystkie dostępne polecenia w Redis, COMMAND COUNT - zwraca liczbę wszystkich poleceń serwera Redis, COMMAND INFO command-name [command-name...] - zwraca informacje o wybranym poleceniu (poleceniach), DBSIZE - zwraca liczbę kluczy w aktualnie wybranej bazie, FLUSHDB - usuwa wszystkie klucze w aktualnej bazie danych, FLUSHALL - usuwa wszystkie klucze z wszystkich istniejących baz, nie tylko tej wybranej, INFO [section] - zwraca informacje i statystyki dotyczące serwera, można określić sekcję zwracanych informacji, CONFIG RESETSTAT - resetuje statystyki zwracane przez polecenie INFO, SLAVEOF [NO ONE hostname port] - zmienia ustawienie replikacji bieżącego servera (ustawia go na master albo jako slave innego),
63 Bazy klucz-wartość. Redis 63/97 Polecenia z grupy Server III MONITOR - polecenie do wykrywania błędów, wyświetla w strumieniu wszystko co dzieje się z bazą danych, można używać z redis-cli albo z telnet, np. telnet localhost 6379, ROLE - wyświetla informacje o danej instancji Redisa w kontekście klastra i replikacji (czy jest master czy slave, co jest podłączone do niego), BGSAVE - zapisuje w tle (background) bazę danych na dysku (/var/lib/redis/dump.rdb), LASTSAVE - zwraca czas Unixowy określający kiedy był ostatni zapis poleceniem BGSAVE, SAVE - synchroniczny zapis danych z pamięci na dysk, stosowany w awaryjnych sytuacjach. SHUTDOWN [NOSAVE SAVE] -zatrzymuje wszystkie połączenia, zapisuje dane (SAVE), wyłącza serwer. TIME - zwraca bieżący czas serwera jako listę dwuelementową (punkt czasowy Unixa i liczbę mikrosekund),
64 Bazy klucz-wartość. Redis 64/97 Dostępne biblioteki Redis w Node.js Dostępne biblioteki Redis w Node.js (pogrubiono pozycje rekomendowane): fast-redis-cluster - ioredis - wspaniały, skupiony na wydajności, udostępniający pełną funkcjonalność (obsługa klastrów, wartownika, potoków, skryptów LUA), node redis - rebridge - redis-fast-driver - spade - then-redis - mały, działa wykorzystując obietnice, thunk-redis - yoredis - Powyższe biblioteki są aktywne (zmiany w kodzie w ciągu ostatnich 6 m-cy).
65 ioredis Wspiera Redis >= i (Node.js >= albo io.js). Cechy: wysoka wydajność, wspaniałe API, działa na wywołaniach zwrotnych z Node.js i na obietnicach, przestrzeń abstrakcji dla skryptów LUA, pozwala definiować własne polecenia, wsparcie dla danych binarnych, wsparcie dla TSL, wsparcie typów z ES6 (jak map i set), wsparcie dla poleceń z grupy GEO, zaawansowana obsługa obłędów. Bazy klucz-wartość. Redis 65/97
66 Bazy klucz-wartość. Redis 66/97 ioredis - instalacja, podstawowe użycie Instalacja biblioteki: npm install ioredis --save Proste użycie: var Redis = require( ioredis ); var redis = new Redis(); redis.set( zmienna, wartosc ); redis.get( zmienna, function (err, result) { console.log(result); }); // w przypadku użycia obietnic, ostatni argument nie jest funkcją redis.get( foo ).then(function (result) { console.log(result); }); // argumenty do poleceń są spłaszczane, poniższe dwa polecenia wykonują to samo redis.sadd( set, 1, 3, 5, 7); redis.sadd( set, [1, 3, 5, 7]); // wszystkie argumenty są przekazywane bezpośrednio do serwera redis redis.set( key, 100, EX, 10);
67 azy klucz-wartość. Redis 67/97 ioredis - połączenie z bazą danych Połączenie z bazą danych: new Redis() // Połączenie z :6379 new Redis(6380) // :6380 new Redis(6379, ) // :6379 new Redis( /tmp/redis.sock ) new Redis({ port: 6379, // Redis port host: , // Redis host family: 4, // 4 (IPv4) or 6 (IPv6) password: auth, db: 0 }) Inny sposób połączenia podając adres URL: // Połączenie z :6380, db 4, podane hasło "authpassword": new Redis( redis://:authpassword@ :6380/4 )
68 Bazy klucz-wartość. Redis 68/97 Język programowania Lua I Cechy: Język programowania Lua - wersja potężny, efektywny i lekki język skryptowy możliwy do uruchomienia na urządzeniach mobilnych, wspiera programowanie: proceduralne, zorientowane obiektowo, funkcyjne, sterowane danymi, wspiera również opis danych, jest dynamicznie typowany, wykorzystuje maszynę wirtualną interpretującą pośredni kod binarny (ang. bytecode), dostarcza automatyczne zarządzanie pamięcią z mechanizmem odśmiecania pamięci (ang. garbage collection), świetnie nadaje się do problemów związanych z konfiguracją, pisania skryptów czy szybkiego prototypowania.
69 Bazy klucz-wartość. Redis 69/97 Język programowania Lua II Cechy: Dokumentacja: zaprojektowany i zarządzany w Papieskim Katolickim Uniwersytecie w Rio de Janeiro w Brazyli, Lua to księżyc po portugalsku, czyta się LOO-ah. używany w wielu technicznych aplikacjach ze szczególnym uwzględnieniem systemów wbudowanych i gier, obecnie jest wiodącym językiem skryptowym dla gier, posiada solidną dokumentację i napisano o nim kilka książek, działa bardzo szybko, najszybciej ze wszystkich języków skryptowych, jest przenośna (małą paczkę łatwo wszędzie zainstalować).
70 Bazy klucz-wartość. Redis 70/97 Język programowania Lua III Cechy: Dokumentacja: darmowy, działa na licencji MIT, zajmuje tylko 1.1MB po rozpakowaniu. dostarcza meta-mechanizmy, pozwalające na implementację różnych cech języka programowania, nie ma tych cech bezpośrednio w samym Lua, nie jest typowo obiektowy ale dostarcza meta-mechanizmy do implementowania klas i dziedziczenia, meta-mechanizmy pozwalają na utrzmymanie małego języka z dużymi możliwościami, semantyka może być rozszerzana w niekonwencjonalny sposób.
71 Bazy klucz-wartość. Redis 71/97 Składnia języka Lua - instrukcja warunkowa Hello World print("hello World!") Instrukcja warunkowa wiek = zmienna globalna --[[ Przykład instrukcji warunkowej if z wielowierszowym komentarzem ]] if ( wiek >= 18 ) then print( "osiagnales pelnoletniosc" ) else print( "jetes niepelnoletni" ) end
72 Bazy klucz-wartość. Redis 72/97 Składnia języka Lua - pętla for, konkatenacja pętla for pierwszy = 7 ostatni = 14 krok = 2.2 for i = pierwszy, ostatni, krok do -- polecenia... print( "i wynosi ".. i ) end --krok może być ujemy-iteracja w dół i wynosi 7.0 i wynosi 9.2 i wynosi 11.4 i wynosi 13.6
73 Bazy klucz-wartość. Redis 73/97 Składnia języka Lua - pętla while pętla while -- lokalna zmienna l, globalniej nie można konkatenować local l = while działa jeśli warunek = true while l>0 do -- polecenia... l = l print("l wynosi ".. l) end l wynosi l wynosi l wynosi l wynosi
74 Bazy klucz-wartość. Redis 74/97 Składnia języka Lua - pętla repeat pętla repeat local k = 7 -- repeat działa jeśli warunek = false -- wpisujemy warunek na przerwanie petli repeat repeat -- polecenia... print("k wynosi ".. k) k = k until k>50 -- until not (k<=50) k wynosi 7 k wynosi k wynosi k wynosi k wynosi 46.24
75 Bazy klucz-wartość. Redis 75/97 Składnia języka Lua - funkcje prosta funkcja function iloczyn( par1, par2 ) -- deklaracja funkcji return par1 * par2 -- słowo kluczowe "return" - zwrócenie wartości end print( tostring( iloczyn( 123, 456 ) ) ) prosta funkcja function silnia(n) local x = 1 for i = 2, n do x = x * i end return x end sil = silnia(7) print( 7!=, sil, zapis blokowy, parametrów funkcji print ) 7!= 5040 zapis blokowy parametrów funkcji print
76 Bazy klucz-wartość. Redis 76/97 Składnia języka Lua - tablice tab = {} -- pusta tablica tab[ a ] = 123 tab[ b ] = 456 print(tab) -- drukuje adres tablcy tabb = tab -- przy okazji, rozróżnia duże i małe litery print(tabb) -- wskazuje ten sam adres co tab print(tab[ a ], tab[ b ]) print(tab.a, tab.b) tab[1] = 7 tab[3] = 8 tab[44] = 9 print(tab[1], tab[2], tab[3], tab[44]) -- 7 nil 8 9 tabc = { 11, 22, Wojtek, d = "Danuta" } tabc[0] = 999 print(tabc[0], tabc[1], tabc[2], tabc[3], tabc[ d ], tabc.d) table: 0x128e1f0 table: 0x128e1f nil Wojtek Danuta Danuta
77 Bazy klucz-wartość. Redis 77/97 Składnia języka Lua - przechowywanie funkcji zmienne i tabele przechowujące funkcje fun = function(m) print( Liczba m=.. m) end fun(888) function zwroc_funkcje() return function(n) print( Liczba n=.. n) end end fun00 = zwroc_funkcje() fun00(9999) Liczba m=888 Liczba n=9999
78 Bazy klucz-wartość. Redis 78/97 Składnia języka Lua - przestrzenie nazw tabela jako własna przestrzeń nazw MojaPrzestrzen = {} -- coś jakby konstruktor MojaPrzestrzen.new = function (imie, wiek) return { imie = imie, wiek = wiek } end jan = MojaPrzestrzen.new( Jan, 23) print(mojaprzestrzen.new, jan) print(jan.imie, jan.wiek) function: 0x10ade50 Jan 23 table: 0x10ae090
79 Bazy klucz-wartość. Redis 79/97 Składnia języka Lua - interakcja z użytkownikiem, napisy interakcja z użytkownikiem, napisy print( "Czesc, jak masz na imie?\n" ) --\n to oznaczenie nowej linii --Funkcja io.read( ) oczekuje na wprowadzenie danych local imie = io.read( ) print( "Czesc, ".. imie.. "." ) print(string.len(imie)) print(string.byte(imie, 1)) print( Ostatnia litera:.. imie:sub(string.len(imie))) Czesc, jak masz na imie? Adam Czesc, Adam Ostatnia litera: m
80 Bazy klucz-wartość. Redis 80/97 Wykorzystanie skryptów Lua w Redis I prosty odczyt danych return redis.call( get, napis ) > set napis "Ala ma kota" $ redis-cli --eval redis.lua "Ala ma kota" odczyt listy return redis.call( lrange, imiona, 0, -1) > RPUSH imiona "Jan" "Marek" "Halina" "Wojtek" "Martyna" $ redis-cli --eval redis.lua 1) "Jan" 2) "Marek" 3) "Halina" 4) "Wojtek" 5) "Martyna"
81 Bazy klucz-wartość. Redis 81/97 Wykorzystanie skryptów Lua w Redis II prosty odczyt danych local imiona = redis.call( lrange, imiona, 0, -1) local zenskie = {} for key, value in pairs(imiona) do if ( value:sub( string.len(value) ) == a ) then table.insert(zenskie, value) end end return zenskie > RPUSH imiona "Jan" "Marek" "Halina" "Wojtek" "Martyna" $ redis-cli --eval redis.lua 1) "Halina" 2) "Martyna"
82 Bazy klucz-wartość. Redis 82/97 Najpopularniejsze narzędzia do pracy z Redis Narzędzia: Redis Desktop Manager - FastoRedis redsmin - Redis Commander - Redis React - medis -
83 Bazy klucz-wartość. Redis 83/97 Redis Desktop Manager Cechy: wieloplatformowy (działa na bazie Qt) darmowy (open source) pozwala na proste zarządzanie bazą redis wersja ciągle dość nowy produkt szybki, łatwy w użyciu pozwala na podstawowe operacje: przeglądanie kluczy i ich drzew, operacje CRUD na kluczach, uruchamianie poleceń przez wbudowaną konsolę wspiera szyfrowanie SSL/TLS, połączenie z użyciem SSH i połączenie z bazami w chmurze jak: Amazon ElastiCache, Microsoft Azure Redis Cache and Redis Labs
84 Redis Desktop Manager - po uruchomieniu Bazy klucz-wartość. Redis 84/97
85 Redis Desktop Manager - przeglądanie tablicy asoc. Bazy klucz-wartość. Redis 85/97
86 Redis Desktop Manager - terminal Bazy klucz-wartość. Redis 86/97
87 Redis Desktop Manager - dane o serwerze Bazy klucz-wartość. Redis 87/97
88 Bazy klucz-wartość. Redis 88/97 FastoRedis FastoRedis - Redis GUI Manager Cechy: wieloplatformowy (pisany w C++) darmowy (open source) pozwala na proste zarządzanie bazą redis wersja trochę bardziej dojrzały używa tego samego silnika co konsola redis-cli wszystko co można napisać w redis-cli działa też w FastoRedis podświetla kod, dopełnia pisany kod, różne tryby przeglądania danych wiele możliwych zakładek z terminalami - połączenie z wieloma serwerami wspiera Redis Cluster i Redis Sentinel, połączenie z użyciem SSH
89 FastoRedis - przeglądanie danych Bazy klucz-wartość. Redis 89/97
90 FastoRedis - lista kluczy, edycja, dane serwera Bazy klucz-wartość. Redis 90/97
91 Bazy klucz-wartość. Redis 91/97 redsmin Cechy: REDIS-CLI WAS GOOD IN THE 90S narzędzie do administracji i monitorowania bazą Redis w czasie rzeczywistym działa w przeglądarce zarówno dla bazy localhost jak i dowolnego hostnigu czy usługi w chmurze pozwala na przeglądanie i edycję danych, edycję skryptów Lua darmowe dla pojedynczego połączenia, powyżej tego płatna dopracowane i chyba najbardziej rozbudowane ze wszystkich
92 redsmin - przeglądanie i edycja danych Bazy klucz-wartość. Redis 92/97
93 redsmin - monitorowanie serwera Bazy klucz-wartość. Redis 93/97
94 redsmin - konfiguracja serwera Bazy klucz-wartość. Redis 94/97
95 redsmin - inteligentna konsola Bazy klucz-wartość. Redis 95/97
96 Bazy klucz-wartość. Redis 96/97 Źródła best-nosql-databases-fall-2015/ Redis-RDB-Dump-File-Format
Redis, skrypty w języku Lua
edis, skrypty w języku Lua 1/15 Redis, skrypty w języku Lua Technologie Zarządzania Treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej
Bazy klucz-wartość. Redis
azy klucz-wartość. Redis 1/60 Bazy klucz-wartość. Redis Technologie Zarządzania Treścią dr inż. Robert Perliński rperlinski@icis.pcz.pl Politechnika Częstochowska Instytut Informatyki Teoretycznej i Stosowanej
Wprowadzenie do bazy danych nurtu NoSQL - Redis
Wprowadzenie do bazy danych nurtu NoSQL - Redis Instytut Informatyki, Politechnika Poznańska styczeń 2018 Redis Remote Dictionary Service - to serwer bazy danych nurtu NoSQL, który przechowuje dane w postaci
ROZSZERZAJĄC FUNKCJONALNOŚCI MEMCACHED
ROZSZERZAJĄC FUNKCJONALNOŚCI MEMCACHED Mariusz Gil mariusz.gil@scalability.pl 4Developers 2011, Warszawa BIO 2 CZYM JEST MEMCACHED? 3 DISTRIBUTED HASH TABLE 4 ZASADA DZIAŁANIA cache 1GB cache 1GB memcached
MongoDB. wprowadzenie. dr inż. Paweł Boiński, Politechnika Poznańska
MongoDB wprowadzenie dr inż. Paweł Boiński, Politechnika Poznańska Plan Historia Podstawowe pojęcia: Dokument Kolekcja Generowanie identyfikatora Model danych Dokumenty zagnieżdżone Dokumenty z referencjami
Wykład 5: PHP: praca z bazą danych MySQL
Wykład 5: PHP: praca z bazą danych MySQL Architektura WWW Podstawowa: dwuwarstwowa - klient (przeglądarka) i serwer WWW Rozszerzona: trzywarstwowa - klient (przeglądarka), serwer WWW, serwer bazy danych
Administracja bazami danych
Administracja bazami danych dr inż. Grzegorz Michalski Na podstawie wykładów dra inż. Juliusza Mikody Klient tekstowy mysql Program mysql jest prostym programem uruchamianym w konsoli shell do obsługi
Instalacja SQL Server Express. Logowanie na stronie Microsoftu
Instalacja SQL Server Express Logowanie na stronie Microsoftu Wybór wersji do pobrania Pobieranie startuje, przechodzimy do strony z poradami. Wypakowujemy pobrany plik. Otwiera się okno instalacji. Wybieramy
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ), Program 351203 Opracowanie: Grzegorz Majda Tematyka zajęć 2. Przygotowanie środowiska pracy
Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi
Zakres tematyczny dotyczący kursu PHP i MySQL - Podstawy pracy z dynamicznymi stronami internetowymi 1 Rozdział 1 Wprowadzenie do PHP i MySQL Opis: W tym rozdziale kursanci poznają szczegółową charakterystykę
Serwer SSH. Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami
Serwer SSH Serwer SSH Wprowadzenie do serwera SSH Instalacja i konfiguracja Zarządzanie kluczami Serwer SSH - Wprowadzenie do serwera SSH Praca na odległość potrzeby w zakresie bezpieczeństwa Identyfikacja
PHP: bloki kodu, tablice, obiekty i formularze
1 PHP: bloki kodu, tablice, obiekty i formularze SYSTEMY SIECIOWE Michał Simiński 2 Bloki kodu Blok if-else Switch Pętle Funkcje Blok if-else 3 W PHP blok if i blok if-else wyglądają tak samo i funkcjonują
Indeksowanie w bazach danych
w bazach Katedra Informatyki Stosowanej AGH 5grudnia2013 Outline 1 2 3 4 Czym jest indeks? Indeks to struktura, która ma przyspieszyć wyszukiwanie. Indeks definiowany jest dla atrybutów, które nazywamy
Projekt Fstorage. www.fstorage.pl. Łukasz Podkalicki Bartosz Kropiewnicki
Projekt Fstorage www.fstorage.pl Łukasz Podkalicki Bartosz Kropiewnicki Konspekt 1. Problemy związane ze składowaniem plików 2. Dostępne darmowe technologie 3. Opis najczęściej stosowanej technologii 4.
Smarty PHP. Leksykon kieszonkowy
IDZ DO PRZYK ADOWY ROZDZIA SPIS TREœCI KATALOG KSI EK KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG Smarty PHP. Leksykon kieszonkowy Autor: Daniel Bargie³ ISBN: 83-246-0676-9 Format: B6, stron: 112 TWÓJ KOSZYK
Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki
Dariusz Brzeziński Politechnika Poznańska, Instytut Informatyki Język programowania prosty bezpieczny zorientowany obiektowo wielowątkowy rozproszony przenaszalny interpretowany dynamiczny wydajny Platforma
Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)
Uwagi dotyczące notacji kodu! Wyrazy drukiem prostym -- słowami języka VBA. Wyrazy drukiem pochyłym -- inne fragmenty kodu. Wyrazy w [nawiasach kwadratowych] opcjonalne fragmenty kodu (mogą być, ale nie
Podstawy programowania skrót z wykładów:
Podstawy programowania skrót z wykładów: // komentarz jednowierszowy. /* */ komentarz wielowierszowy. # include dyrektywa preprocesora, załączająca biblioteki (pliki nagłówkowe). using namespace
WPROWADZENIE DO BAZ DANYCH
WPROWADZENIE DO BAZ DANYCH Pojęcie danych i baz danych Dane to wszystkie informacje jakie przechowujemy, aby w każdej chwili mieć do nich dostęp. Baza danych (data base) to uporządkowany zbiór danych z
Bash - wprowadzenie. Bash - wprowadzenie 1/39
Bash - wprowadzenie Bash - wprowadzenie 1/39 Bash - wprowadzenie 2/39 Czym jest bash? Rysunek : Zadanie powłoki to ukrycie wywołań systemowych Bash - wprowadzenie 3/39 Czym jest bash? Przykład polecenia:
dziennik Instrukcja obsługi
Ham Radio Deluxe dziennik Instrukcja obsługi Wg. Simon Brown, HB9DRV Tłumaczenie SP4JEU grudzień 22, 2008 Zawartość 3 Wprowadzenie 5 Po co... 5 Główne cechy... 5 baza danych 7 ODBC... 7 Który produkt
Wprowadzenie db4o - podstawy db4o - technikalia Przydatne wiadomości. Wprowadzenie. db4o. Norbert Potocki. 1 czerwca 2009. Norbert Potocki db4o
Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie 1 czerwca 2009 Wprowadzenie - podstawy - technikalia Przydatne wiadomości Wprowadzenie = bjects = database for objects w pełni obiektowa
DBPLUS Data Replicator Subtitle dla Microsoft SQL Server. dbplus.tech
DBPLUS Data Replicator Subtitle dla Microsoft SQL Server dbplus.tech Instalacja Program instalacyjny pozwala na zainstalowanie jednego lub obu komponentów: serwera i klienta. Przy zaznaczeniu opcji Serwer
Komunikacja między sterownikami przez protokół ADS
Komunikacja między sterownikami przez protokół ADS Poziom trudności: łatwy Wersja dokumentacji: 1.0 Aktualizacja: 20.03.2015 Beckhoff Automation Sp. z o. o. Spis treści 1. Komunikacja ADS... 3 2. Konfiguracja
Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java
Informatyka I Standard JDBC Programowanie aplikacji bazodanowych w języku Java dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2017 Standard JDBC Java DataBase Connectivity uniwersalny
Kopie bezpieczeństwa NAPRAWA BAZ DANYCH
Kopie bezpieczeństwa NAPRAWA BAZ DANYCH Sprawdzanie spójności bazy danych Jednym z podstawowych działań administratora jest zapewnienie bezpieczeństwa danych przez tworzenie ich kopii. Przed wykonaniem
Programowanie w języku Python. Grażyna Koba
Programowanie w języku Python Grażyna Koba Kilka definicji Program komputerowy to ciąg instrukcji języka programowania, realizujący dany algorytm. Język programowania to zbiór określonych instrukcji i
Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do
Sesje i ciasteczka Kontrola sesji w PHP HTTP jest protokołem bezstanowym (ang. stateless) nie utrzymuje stanu między dwoma transakcjami. Kontrola sesji służy do śledzenia użytkownika podczas jednej sesji
Tabela wewnętrzna - definicja
ABAP/4 Tabela wewnętrzna - definicja Temporalna tabela przechowywana w pamięci operacyjnej serwera aplikacji Tworzona, wypełniana i modyfikowana jest przez program podczas jego wykonywania i usuwana, gdy
Pawel@Kasprowski.pl Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07
PHP i bazy danych Paweł Kasprowski pawel@kasprowski.pl Użycie baz danych Bazy danych używane są w 90% aplikacji PHP Najczęściej jest to MySQL Funkcje dotyczące baz danych używają języka SQL Przydaje się
Wprowadzenie do Doctrine ORM
Wprowadzenie do Doctrine ORM Przygotowanie środowiska Do wykonania ćwiczenia konieczne będzie zainstalowanie narzędzia Composer i odpowiednie skonfigurowanie Netbeans (Tools->Options->Framework & Tools->Composer,
Administracja i programowanie pod Microsoft SQL Server 2000
Administracja i programowanie pod Paweł Rajba pawel@ii.uni.wroc.pl http://www.kursy24.eu/ Zawartość modułu 9 Optymalizacja zapytań Pobieranie planu wykonania Indeksy i wydajność - 1 - Zadania optymalizatora
PHP: bazy danych, SQL, AJAX i JSON
1 PHP: bazy danych, SQL, AJAX i JSON SYSTEMY SIECIOWE Michał Simiński 2 Bazy danych Co to jest MySQL? Jak się połączyć z bazą danych MySQL? Podstawowe operacje na bazie danych Kilka dodatkowych operacji
Języki programowania wysokiego poziomu. PHP cz.4. Bazy danych
Języki programowania wysokiego poziomu PHP cz.4. Bazy danych PHP i bazy danych PHP może zostać rozszerzony o mechanizmy dostępu do różnych baz danych: MySQL moduł mysql albo jego nowsza wersja mysqli (moduł
ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1
Instrukcja obsługi ArtPlayer oprogramowanie do odtwarzania plików video sterowane Artnet/DMX V1.0.1 1 ArtPlayer to proste oprogramowanie umożliwiające odtwarzanie plików video i ich wybór poprzez protokół
Skanowanie podsieci oraz wykrywanie terminali ABA-X3
Skanowanie podsieci oraz wykrywanie terminali ABA-X3 Terminale ABA-X3 od dostarczane od połowy listopada 2010 r. są wyposażane w oprogramowanie umożliwiające skanowanie podsieci w poszukiwaniu aktywnych
2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego
2014 Electronics For Imaging. Informacje zawarte w niniejszej publikacji podlegają postanowieniom opisanym w dokumencie Uwagi prawne dotyczącym tego produktu. 23 czerwca 2014 Spis treści 3 Spis treści...5
Języki skryptowe w programie Plans
Języki skryptowe w programie Plans Warsztaty uŝytkowników programu PLANS Kościelisko 2010 Zalety skryptów Automatyzacja powtarzających się czynności Rozszerzenie moŝliwości programu Budowa własnych algorytmów
Kancelaria Prawna.WEB - POMOC
Kancelaria Prawna.WEB - POMOC I Kancelaria Prawna.WEB Spis treści Część I Wprowadzenie 1 Część II Wymagania systemowe 1 Część III Instalacja KP.WEB 9 1 Konfiguracja... dostępu do dokumentów 11 Część IV
XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery
http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod
Baza numerów Wersja 1.1
Baza numerów Wersja 1.1 SPIS TREŚCI 1. Wprowadzenie 1.1 Adresy URL do połączenia z aplikacją 1.2 Informacje zwrotne wysyłane z API w odpowiedzi na odebrane odwołania I. Zarządzanie grupami Bazy Numerów
Umieszczanie kodu. kod skryptu
PHP Definicja PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania C/C++, lecz jest bardzo uproszczona
INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII
Wrocław 2006 INTERNETOWE BAZY DANYCH materiały pomocnicze - wykład VII Paweł Skrobanek C-3, pok. 323 e-mail: pawel.skrobanek@pwr.wroc.pl INTERNETOWE BAZY DANYCH PLAN NA DZIŚ : Cookies Sesje Inne możliwości
Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu
Programowanie strukturalne Opis ogólny programu w Turbo Pascalu STRUKTURA PROGRAMU W TURBO PASCALU Program nazwa; } nagłówek programu uses nazwy modułów; } blok deklaracji modułów const } blok deklaracji
Informatyka I. Programowanie aplikacji bazodanowych w języku Java. Standard JDBC.
Informatyka I Programowanie aplikacji bazodanowych w języku Java. Standard JDBC. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 Standard JDBC Java DataBase Connectivity
Systemy GIS Tworzenie zapytań w bazach danych
Systemy GIS Tworzenie zapytań w bazach danych Wykład nr 6 Analizy danych w systemach GIS Jak pytać bazę danych, żeby otrzymać sensowną odpowiedź......czyli podstawy języka SQL INSERT, SELECT, DROP, UPDATE
Część I Rozpoczęcie pracy z usługami Reporting Services
Spis treści Podziękowania... xi Wprowadzenie... xiii Część I Rozpoczęcie pracy z usługami Reporting Services 1 Wprowadzenie do usług Reporting Services... 3 Platforma raportowania... 3 Cykl życia raportu...
Wdrożenie modułu płatności eservice. dla systemu Zen Cart 1.3.9 1.5
Wdrożenie modułu płatności eservice dla systemu Zen Cart 1.3.9 1.5 - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie
Lekcja 1. Składnia języka zmienne i podstawowe instrukcje PHP. Do wyświetlania tekstu służy instrukcja echo echo Hello world ;
Do wyświetlania tekstu służy instrukcja echo echo Hello world ; PHP język ze słabą kontrolą typów. W języku php w przeciwieństwie do c++ nie musimy podawać typu zmiennej podczas jej deklaracji. Tworzenie
Projektowanie systemów baz danych
Projektowanie systemów baz danych Seweryn Dobrzelewski 4. Projektowanie DBMS 1 SQL SQL (ang. Structured Query Language) Język SQL jest strukturalnym językiem zapewniającym możliwość wydawania poleceń do
Trochę o plikach wsadowych (Windows)
Trochę o plikach wsadowych (Windows) Zmienne środowiskowe Zmienną środowiskową można ustawić na stałe w systemie (Panel sterowania->system- >Zaawansowane ustawienia systemu->zmienne środowiskowe) lub też
Programowanie w Sieci Internet Blok 2 - PHP. Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki
Programowanie w Sieci Internet Blok 2 - PHP Kraków, 09 listopada 2012 mgr Piotr Rytko Wydział Matematyki i Informatyki Co dziś będziemy robić Podstawy podstaw, czyli małe wprowadzenie do PHP, Podstawy
koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,
Celem ćwiczeń jest zaprojektowanie oraz utworzenie na serwerze bazy danych przechowującej informacje na temat danych kontaktowych. Celem jest również zapoznanie z podstawowymi zapytaniami języka SQL służącymi
Krzysztof Kadowski. PL-E3579, PL-EA0312,
Krzysztof Kadowski PL-E3579, PL-EA0312, kadowski@jkk.edu.pl Bazą danych nazywamy zbiór informacji w postaci tabel oraz narzędzi stosowanych do gromadzenia, przekształcania oraz wyszukiwania danych. Baza
Wykład I. Wprowadzenie do baz danych
Wykład I Wprowadzenie do baz danych Trochę historii Pierwsze znane użycie terminu baza danych miało miejsce w listopadzie w 1963 roku. W latach sześcdziesątych XX wieku został opracowany przez Charles
Materiały do laboratorium MS ACCESS BASIC
Materiały do laboratorium MS ACCESS BASIC Opracowała: Katarzyna Harężlak Access Basic jest językiem programowania wykorzystywanym w celu powiązania obiektów aplikacji w jeden spójny system. PROCEDURY I
Wdrożenie modułu płatności eservice. dla systemu oscommerce 2.3.x
Wdrożenie modułu płatności eservice dla systemu oscommerce 2.3.x - dokumentacja techniczna Wer. 01 Warszawa, styczeń 2014 1 Spis treści: 1 Wstęp... 3 1.1 Przeznaczenie dokumentu... 3 1.2 Przygotowanie
Autor: Joanna Karwowska
Autor: Joanna Karwowska Wygodniejszym i wydajniejszym sposobem przechowywania i korzystania z dużej ilości danych zapisanych na serwerze jest współpraca z relacyjną bazą danych. 2 1. Utworzyć bazę danych.
PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop Spis treści
PHP i MySQL dla każdego / Marcin Lis. Wyd. 3. Gliwice, cop. 2017 Spis treści Wstęp 11 Część I Skrypty PHP dynamiczne generowanie stron internetowych 15 Rozdział 1. Podstawy 17 Czym jest PHP? 17 Krótka
Tworzenie oprogramowania
Tworzenie oprogramowania dr inż. Krzysztof Konopko e-mail: k.konopko@pb.edu.pl 1 Tworzenie oprogramowania dla systemów wbudowanych Program wykładu: Tworzenie aplikacji na systemie wbudowanym. Konfiguracja
Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD
Podstawy programowania Wykład: 9 Łańcuchy znaków 1 dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD Rodzaje plików Dane przechowywane w pliku mogą mieć reprezentację binarną (taką samą, jak
DESlock+ szybki start
DESlock+ szybki start Wersja centralnie zarządzana Wersja bez centralnej administracji standalone WAŻNE! Pamiętaj, że jeśli chcesz korzystać z centralnego zarządzania koniecznie zacznij od instalacji serwera
Skrypty powłoki Skrypty Najcz ciej u ywane polecenia w skryptach:
Skrypty powłoki Skrypty są zwykłymi plikami tekstowymi, w których są zapisane polecenia zrozumiałe dla powłoki. Zadaniem powłoki jest przetłumaczenie ich na polecenia systemu. Aby przygotować skrypt, należy:
Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne
Jarosław Kuchta Internetowe Usługi Informacyjne Komponenty IIS HTTP.SYS serwer HTTP zarządzanie połączeniami TCP/IP buforowanie odpowiedzi obsługa QoS (Quality of Service) obsługa plików dziennika IIS
Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści
Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop. 2017 Spis treści Przedmowa 11 1. Jak w programie 21 Czym jest program? 21 Uruchamianie interpretera języka Python 22 Pierwszy
Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].
ABAP/4 Instrukcja IF Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek]. [ELSEIF warunek. ] [ELSE. ] ENDIF. gdzie: warunek dowolne wyrażenie logiczne o wartości
Bazy danych II. Andrzej Grzybowski. Instytut Fizyki, Uniwersytet Śląski
Bazy danych II Andrzej Grzybowski Instytut Fizyki, Uniwersytet Śląski Wykład 12 Zastosowanie PHP do programowania aplikacji baz danych MySQL Wsparcie programowania w PHP baz danych MySQL Obsługa baz danych
ARP Address Resolution Protocol (RFC 826)
1 ARP Address Resolution Protocol (RFC 826) aby wysyłać dane tak po sieci lokalnej, jak i pomiędzy różnymi sieciami lokalnymi konieczny jest komplet czterech adresów: adres IP nadawcy i odbiorcy oraz adres
Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści
Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop. 2017 Spis treści O autorach 11 Podziękowania 12 Wprowadzenie 13 CZĘŚĆ I ZACZNIJ PROGRAMOWAĆ JUŻ DZIŚ Godzina 1. Praktyczne
KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ
KORPORACYJNE SYSTEMY ZARZĄDZANIA INFORMACJĄ Wykład 3 Katedra Inżynierii Komputerowej Jakub Romanowski jakub.romanowski@kik.pcz.pl POBIERANIE DANYCH C/AL Poniższe funkcje używane są do operacji pobierania
Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa
1 Java Wprowadzenie 2 Czym jest Java? Język programowania prosty zorientowany obiektowo rozproszony interpretowany wydajny Platforma bezpieczny wielowątkowy przenaszalny dynamiczny Rozumiana jako środowisko
Fiery Remote Scan. Uruchamianie programu Fiery Remote Scan. Skrzynki pocztowe
Fiery Remote Scan Program Fiery Remote Scan umożliwia zarządzanie skanowaniem na serwerze Fiery server i drukarce ze zdalnego komputera. Programu Fiery Remote Scan można użyć do wykonania następujących
ArtPlayer. Odtwarzacz plików video sterowany poprzez Artnet/DMX V Instrukcja obsługi.
ArtPlayer Instrukcja obsługi Odtwarzacz plików video sterowany poprzez Artnet/DMX V1.1.0.2 1 ArtPlayer Modus to proste oprogramowanie umożliwiające odtwarzanie plików video i ich kontrolę poprzez protokół
MikroTik Serwer OpenVPN
MikroTik Serwer OpenVPN Generowanie certyfikatów na systemie Debian. Instalujemy OpenVPN, następnie przechodzimy do katalogu ze skryptami: cd /usr/share/openvpn/easyrsa edytujemy plik vars ustawiając kraj,
Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody
Obiektowy PHP Czym jest obiekt? W programowaniu obiektem można nazwać każdy abstrakcyjny byt, który programista utworzy w pamięci komputera. Jeszcze bardziej upraszczając to zagadnienie, można powiedzieć,
Informatyka I. Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki
Informatyka I Typy danych. Operacje arytmetyczne. Konwersje typów. Zmienne. Wczytywanie danych z klawiatury. dr hab. inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2019 1 Plan wykładu
Python wprowadzenie. Warszawa, 24 marca PROGRAMOWANIE I SZKOLENIA
Python wprowadzenie Warszawa, 24 marca 2017 Python to język: nowoczesny łatwy w użyciu silny można pisać aplikacje Obiektowy klejący może być zintegrowany z innymi językami np. C, C++, Java działający
Znaki globalne w Linuxie
Znaki globalne w Linuxie * reprezentuje jeden lub wiele znaków (wild-card character)? reprezentuje dokładnie jeden znak (wild-card character) [abcde] reprezentuje dokładnie jeden znak z wymienionych [a-e]
Data modyfikacji: 2013-08-14
Data modyfikacji: 2013-08-14 Co zawiera ten dokument: Ten dokument przedstawia, w jaki sposób zainstalować program Kancelaris PLUS 4 za pomocą standardowego instalatora na serwerze MySQL w wersji 5.0 i
Podstawowe pojęcia dotyczące relacyjnych baz danych. mgr inż. Krzysztof Szałajko
Podstawowe pojęcia dotyczące relacyjnych baz danych mgr inż. Krzysztof Szałajko Czym jest baza danych? Co rozumiemy przez dane? Czym jest system zarządzania bazą danych? 2 / 25 Baza danych Baza danych
INSTALACJA I KONFIGURACJA. 1.1. Instalacja systemu WF-Mag Mobile 2
INSTALACJA I KONFIGURACJA 1.1. Instalacja systemu WF-Mag Mobile 2 System WF-Mag Mobile 2 dostępny jest na jednej płycie instalacyjnej wraz z innymi aplikacjami Asseco WAPRO. Oprócz aplikacji wchodzących
Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018
Informatyka I Klasy i obiekty. Podstawy programowania obiektowego dr inż. Andrzej Czerepicki Politechnika Warszawska Wydział Transportu 2018 Plan wykładu Pojęcie klasy Deklaracja klasy Pola i metody klasy
wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK
wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK 1 2 3 Pamięć zewnętrzna Pamięć zewnętrzna organizacja plikowa. Pamięć operacyjna organizacja blokowa. 4 Bufory bazy danych. STRUKTURA PROSTA
Pojęcie bazy danych. Funkcje i możliwości.
Pojęcie bazy danych. Funkcje i możliwości. Pojęcie bazy danych Baza danych to: zbiór informacji zapisanych według ściśle określonych reguł, w strukturach odpowiadających założonemu modelowi danych, zbiór
Podstawowa konfiguracja routerów. Interfejsy sieciowe routerów. Sprawdzanie komunikacji w sieci. Podstawy routingu statycznego
Podstawowa konfiguracja routerów Interfejsy sieciowe routerów Sprawdzanie komunikacji w sieci Podstawy routingu statycznego Podstawy routingu dynamicznego 2 Plan prezentacji Tryby pracy routera Polecenia
Kiedy i czy konieczne?
Bazy Danych Kiedy i czy konieczne? Zastanów się: czy często wykonujesz te same czynności? czy wielokrotnie musisz tworzyć i wypełniać dokumenty do siebie podobne (faktury, oferty, raporty itp.) czy ciągle
Wstęp do programowania. Różne różności
Wstęp do programowania Różne różności Typy danych Typ danych określa dwie rzeczy: Jak wartości danego typu są określane w pamięci Jakie operacje są dozwolone na obiektach danego typu 2 Rodzaje typów Proste
Hurtownie danych wykład 5
Hurtownie danych wykład 5 dr Sebastian Zając SGH Warszawa 7 lutego 2017 1 Współbieżność i integracja Niezgodność impedancji 2 bazy danych Współbieżność i integracja Niezgodność impedancji Bazy relacyjne
Języki programowania wysokiego poziomu. PHP cz.2.
Języki programowania wysokiego poziomu PHP cz.2. Instrukcje strukturalne PHP Instrukcje strukturalne Instrukcja grupująca (blok instrukcji) Instrukcja warunkowa, if-else Instrukcja wyboru, switch-case
BAZY DANYCH. Obsługa bazy z poziomu języka PHP. opracowanie: Michał Lech
BAZY DANYCH Obsługa bazy z poziomu języka PHP opracowanie: Michał Lech Plan wykładu 1. PHP - co to jest? 2. Bazy danych obsługiwane przez PHP 3. Podstawowe polecenia 4. Sesje 5. Przykład - dodawanie towaru
Wątek - definicja. Wykorzystanie kilku rdzeni procesora jednocześnie Zrównoleglenie obliczeń Jednoczesna obsługa ekranu i procesu obliczeniowego
Wątki Wątek - definicja Ciąg instrukcji (podprogram) który może być wykonywane współbieżnie (równolegle) z innymi programami, Wątki działają w ramach tego samego procesu Współdzielą dane (mogą operować
Programowanie obiektowe - 1.
Programowanie obiektowe - 1 Mariusz.Masewicz@cs.put.poznan.pl Programowanie obiektowe Programowanie obiektowe (ang. object-oriented programming) to metodologia tworzenia programów komputerowych, która
Narzędzia diagnostyczne protokołów TCP/IP
Narzędzia diagnostyczne protokołów TCP/IP Polecenie ipconfig pozwala sprawdzić adresy przypisane do poszczególnych interfejsów. Pomaga w wykrywaniu błędów w konfiguracji protokołu IP Podstawowe parametry
RPC. Zdalne wywoływanie procedur (ang. Remote Procedure Calls )
III RPC Zdalne wywoływanie procedur (ang. Remote Procedure Calls ) 1. Koncepcja Aplikacja wywołanie procedury parametry wyniki wykonanie procedury wynik komputer klienta komputer serwera Zaletą takiego
Diagnostyka pamięci RAM
Diagnostyka pamięci RAM 1 (Pobrane z slow7.pl) Uszkodzenie pamięci RAM jest jednym z najczęściej występujących problemów związanych z niestabilnym działaniem komputera. Efektem uszkodzenia kości RAM są
Tango-RedPitaya. Tango device server for RedPitaya multi-instrument board. Grzegorz Kowalski daneos@daneos.com 31 sierpnia 2015
Tango-RedPitaya Tango device server for RedPitaya multi-instrument board Grzegorz Kowalski daneos@daneos.com 31 sierpnia 2015 Streszczenie Tango-RedPitaya jest serwerem urządzeń Tango sterującym płytką
ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0
ECDL/ICDL Użytkowanie baz danych Moduł S1 Sylabus - wersja 6.0 Przeznaczenie Sylabusa Dokument ten zawiera szczegółowy Sylabus dla modułu ECDL/ICDL Użytkowanie baz danych. Sylabus opisuje zakres wiedzy
Baza danych. Baza danych to:
Baza danych Baza danych to: zbiór danych o określonej strukturze, zapisany na zewnętrznym nośniku (najczęściej dysku twardym komputera), mogący zaspokoić potrzeby wielu użytkowników korzystających z niego
SQL (ang. Structured Query Language)
SQL (ang. Structured Query Language) SELECT pobranie danych z bazy, INSERT umieszczenie danych w bazie, UPDATE zmiana danych, DELETE usunięcie danych z bazy. Rozkaz INSERT Rozkaz insert dodaje nowe wiersze