Czym jest KeyDB?
KeyDB to jak Redis, ale na sterydach. To otwartoźródłowy silnik bazodanowy, który przechowywuje dane w pamięci, a ma zastosowanie nie tylko jako baza danych, ale także jako, pamięć podręczna i broker wiadomości. Został zaprojektowany jako alternatywa dla Redis, ale z wieloma dodatkowymi funkcjami i usprawnieniami.
Czy KeyDB jest wydajniejsze od Redis?
KeyDB twierdzi, że jest szybsze od Redis dzięki swojej wielowątkowej naturze. W przeciwieństwie do jednowątkowego modelu replikacji Redis, KeyDB wykorzystuje model replikacji wielowątkowej, co pozwala na obsługę większych obciążeń i efektywniejsze rozłożenie pracy. Dzięki temu może obsługiwać wyższe wolumeny żądań i ma minimalne opóźnienia w porównaniu do Redis, co czyni go idealnym wyborem dla aplikacji wymagających wysokiej przepustowości i niskiego opóźnienia.
Jak zainstalować KeyDB przy pomocy Dockera?
Możesz uruchomić podstawową instancję za pomocą polecenia:
docker run eqalpha/keydb
Możesz również dostosować konfigurację podczas uruchamiania, na przykład :
docker run -p 6379:6379 --name mycontainername -d eqalpha/keydb keydb-server /etc/keydb/keydb.conf --requirepass mypassword
Więcej sposobów deploymentu znajdziesz w dokumentacji, bo przyznam iż uruchomienie single-node instancji jest nieco bez sensu. Fajnie by było jednak dorzucić co nieco replikacji. Dokumentacja dla KeyDB tutaj.
Czy można uruchomić KeyDB na klastrze Kubernetes?
Tak, KeyDB można uruchomić na klastrze Kubernetes. Obsługuje różne modele replikacji, w tym replikację asynchroniczną, która jest domyślnym modelem replikacji dla większości przypadków użycia KeyDB. KeyDB wprowadza również replikację active-active, która pozwala na synchronizację danych między wieloma instancjami. To zapewnia wysoką dostępność i tolerancję na błędy, gwarantując, że dane pozostają spójne na różnych instancjach.
Problem ze Splitbrain? Nie tym razem! KeyDB sobie z tym radzi bardzo dobrze. Każdy wpis posiada swój znacznik czasowy i w ten sposób, nawet przy wielu masterach, póki jest połączenie między node’ami to sobie poradzi.
Czy warto wymienić Redis?
Podczas gdy Redis jest szeroko przyjętym i ugruntowanym rozwiązaniem, KeyDB wyróżnia się optymalizacją pod kątem wielowątkowości, oferując poprawę wydajności i skalowalności w scenariuszach o wysokiej współbieżności. Dlatego, jeśli twoja aplikacja wymaga wyższej przepustowości i niskiego opóźnienia, warto rozważyć wymianę Redis na KeyDB.
Patrząc również po zmianach licencyjnych, które dotykają kolejne projekty Open Source, warto szukać alternatyw, tak samo nie obędzie się to w przypadku Redisa. Wielu dostawców chmurowych porzuci Redisa ze względów licencyjnych. Opis na blogu produktu wyjaśnia całość zmian.
Szukając oferty dostawcy chmurowego, warto będzie znać alternatywy, gdyż dostawcy pozbawieni praw do użycia nazwy Redis, będą musieli zmienić opisy oferty. Nieświadomych DevOps’ów oraz programistów może odciąć od wielu usług. W teorii możemy hostować Redis’a wewnętrznie. Nie po to jednak migrujemy się do chmury, by znowu powiększać nasze koszty o administrację kolejnymi usługami.
Czy warto wymienić? Nawet nie tyle, że warto, co trzeba wymienić, gdyż w przyszłości możemy się zaskoczyć, że dostawcy nie obsługują nowej wersji Redis. Z czasem na pewno też przestanie być kompatybilna z alternatywami.
Jaka firma odpowiada za „open source” i czy też się nie odwróci?
To od niedawna (bo wykupione) dziecko firmy Snap Inc.
Ta sama firma, która stoi za Snapchatem, więc wsparcie dla tego projektu Open Source nie zniknie tak szybko. Szczególnie, że to portal od chwilowych fotek uwolnił projekt.
W przyszłości będę opisywać kolejne, ciekawe projekty open source, więc warto mieć nową kategorię „Oprogramowanie” na uwadze na moim blogu.