Wyszukiwanie z autouzupełnianiem z zewnętrznego API

0

Cześć, próbuję zbudować klona IMDB dla gier komputerowych w oparciu o API z https://www.igdb.com/api i zastanawiam się jak najlepiej zrealizować wyszukiwanie z podpowiedziami takie jak widać na szczycie strony. Rozwiązania jakie rozważałem to:

  1. Uderzanie do API prosto z warstwy klienta
  2. Przesyłanie zapytania przez serwer
  3. Ściąganie całej listy i trzymanie jej na serwerze

Rozwiązanie nr 3 wydaje się najoszczędniejsze jako że dość łatwo przekroczyć dzienny limit requestów przy nawet stosunkowo małej liczbie użytkowników (nie zakładam że ktokolwiek będzie tego używał, ale chciałbym zaprojektować to w miarę realistycznie), ale musiałbym ręcznie implementować wyszukiwanie i inne operacje oferowane przez API.
Czy Redis albo jakaś inna baza w pamięci byłyby dobrymi sposobami na trzymanie takiego cache'a? Reszta aplikacji (użytkownicy z przypisaną listą gier) jest oparta o zwykłą bazę SQL.
Może w ogóle się źle za to zabieram, ale jestem ciekaw czy ma to w ogóle sens.

1

SQL odpada, predzej Elastic ale przy duzej ilosci zapytan bedziesz mial problem. Mozna uzyc Redisa tylko trzeba zbudowac samemu indeks i miec odpowiednia ilosc pamieci zeby to przetwarzac w locie.

1

1 odpada, 2 wystarczy. Jak będziesz miał problemy wydajnościowe, to wtedy pomyślisz o zmianie, póki co zrób to na tyle elastycznie, żebyś mógł potem podmienić serwer bez modyfikowania klienta.
3 jest fajne, ale musisz zrobić wyszukiwanie. Możesz użyć jakiegoś Azure Search lub innego Elastica w chmurze, ale o ile dobrze rozumiem, od tego właśnie masz to API od igdb, więc nie ma co tak kombinować.

0

W sumie, to na czym głównie opierają się takie serwisy udostępniające db?

php + baza będąca w stanie obsłużyć x selectów/sec?

Tak się w sumie zainteresowałem:
https://stackoverflow.com/questions/4566714/how-many-mysql-queries-second-can-be-handled-by-a-server

Yoshinori Matsunobu in one of his articles claims 105,000 queries per second using SQL, and 750,000 queries per second using native InnoDB API.

All queries are simple PK lookups.

On a shared hosting these numbers will of course be much lower. How much exactly of course depends on the shared hosting.

1 użytkowników online, w tym zalogowanych: 0, gości: 1