AlfaLinks
AlfaLinksRegistrovat se

Recept

Zkontrolujte zpětné odkazy stránky prostřednictvím API a ukládejte je do mezipaměti férově

Náš index se aktualizuje jednou měsíčně, takže většinu dotazů lze obsloužit z paměti. Recept pro mezipaměti, která ušetří kredity, aniž by uživatelům zobrazovala zastaralá data.

Kamenný most se třemi nádobkami barevného písku znázorňující čerstvost dat o zpětných odkazech v mezipaměti

Pravidlo

Ukládat do mezipaměti do další aktualizace indexu, ne po pevně stanovenou dobu

Protože se data mění přibližně měsíčně, hodinová doba životnosti (TTL) vám nepřináší žádnou výhodu, jen další náklady. Klíč s rozsahem jednoho měsíce poskytuje stejnou odpověď po celý měsíc a zneplatní se najednou.

  • Klíč: akce + doména + parametry + měsíc indexu
  • TTL: do konce měsíce plus jeden den tolerance
  • Nikdy neukládat do mezipaměti odpověď s chybou

Proč je krátká TTL jen darem pro váš zůstatek kreditů

Týmy začínající s daty o odkazech často kopírují zvyklosti z nástrojů pro sledování pozic. První zvyk: hodinová mezipaměť, protože pozice se mění. Grafy odkazů se mění jen málo.

Volání backlinks za 2 kredity stojí $0.0002. To zní jako nic, dokud si rozbalení seznamu na jedné stránce nevyžádá 50 takových volání při každém načtení napříč 400 aktivními pracovními prostory, opakovaně každou hodinu pro stejná data.

Následující vypočtená čísla jsou příkladem, nikoliv měřením provozu konkrétního uživatele. Předpokládejme 400 pracovních prostorů, 20 zobrazení domény denně, 2 kredity za zobrazení a 1hodinovou mezipaměť, která zasáhne jen zhruba jednu pětinu času. Většina zobrazení stále zasáhne API. Při použití klíče na měsíc by stejný provoz zasáhl API jen jednou za doménu a měsíc, takže právě tento rozdíl je podstatou receptu.

Nástroje pro výzkum klíčových slov potřebují čerstvější data a pro ně zůstávají velké kompletní balíky lepší volbou. Pro kontext odkazů je měsíční aktualizace tím správným produktem.

TTL podle akce

Doporučeno, ne povinné. Všechny akce čtou stejný měsíční index.
AkceKredityDoporučená TTLProč
přehled, statistiky0Do konce měsíceZdarma, ale váš server stále ušetří latenci
bulk_dr1Do konce měsíceCelá tabulka zákazníků v jednom volání
refdomains, backlinks2Do konce měsíce, podle parametru stránkyZahrňte page, per, sort do klíče
anchors, toppages2Do konce měsíceStabilní mezi aktualizacemi
search, keyword37 dníVzácně se opakuje, levnější je vynechat ukládání do mezipaměti

Příklad požadavku: naplnění mezipaměti pro tabulku zákazníků

Volání bulk_dr proveďte jednou pro každého zákazníka, ne jednou pro každý řádek. Do jednoho těla POSTu se vejde až 2 000 domén a stojí to jeden kredit.

bash
curl -X POST "https://alfalinks.net/api.php?action=bulk_dr&key=sk_live_..." \
  -d "domains=stripe.com,notion.so,linear.app,figma.com,vercel.com"

# billed once, whatever the row count

Vytvořte mezipaměť ve pěti krocích

Každý krok má jednu úlohu. Pokud jeden přeskočíte, chyba se projeví později, obvykle jako vysoká faktura.

01

Vyberte klíč

Použijte akci, doménu, parametry stránkování a třídění a měsíc indexu. Vynechte vše, co může uživatel změnit bez změny výsledku, například barvu zobrazení nebo název karty.

02

Uložte rozparsovanou odpověď

Uchovávejte dekodovaný JSON s jeho příznakem ok a daty, nikoliv surová data. Pozdější zobrazení pak může obnovit celou tabulku z paměti bez druhého volání.

03

Vyprší na konci měsíce

Nastavte vypršení na konec měsíce indexu plus den tolerance z výše uvedeného pravidla. Použijte stejné pravidlo pro každou akci, aby logika žila v jedné funkci a ne na pěti místech.

04

Logujte zůstatek při každém volání

Při každé autentizované odpovědi přečtěte objekt _credits a zapište zbývající zůstatek do vlastního logu. Pomalý pokles této hodnoty je často prvním signálem, že klíč mezipaměti je nesprávný.

05

Sledujte míru zásahu (hit rate)

Sledujte, jak často je zobrazení obslouženo z mezipaměti. Nízká míra znamená, že klíč je příliš specifický, nebo že uživatelé při každé návštěvě otevřou novou doménu. Obě zjištění jsou užitečná při plánování rozpočtu.

Jablka na korkových podtáckách ukazující kontext data sklizně pro čerstvost

Je zastaralá data volbou produktu nebo chybou?

Číslo o odkazu může být staré měsíc a stále být správné pro index, ze kterého pochází. Skutečnou otázkou je, zda to vaše obrazovka říká. Většina tiketů podpory ohledně starých čísel je problémem označení. Označení to obvykle řeší.

Přiřaďte každému číslu měsíc indexu. Ukažte ho uživatelům. Jakmile mohou vidět datum, číslo přestane vypadat jako rozbitý datový zdroj a tento malý řádek udělá více než kratší TTL kdykoli.

Jak staré je příliš staré pro číslo o odkazu?

Náš index se aktualizuje přibližně jednou měsíčně, takže číslo uložené do mezipaměti první den popisuje stejný index jako číslo uložené poslední den. Nic v odpovědi se během měsíce nemění. Problémy nastávají, když uživatel očekává odkaz z včerejška, a pak je řešením jasné označení, jak je popsáno v označení hodnocení.

Potřebují volná volání přehledu vůbec mezipaměť?

Akce přehled stojí 0 kreditů, takže mezipaměť zde chrání rychlost, nikoliv zůstatek. Váš server stále platí za každý okruhový přenos a stránka, která se otevře padesátkrát za minutu, to pocítí. Uložte i zdarma dostupné odpovědi se stejným měsíčním klíčem a stránka zůstane rychlá, zatímco váš proxy server bude v klidu. Poznámky k veřejnému vyhledávání vysvětlují stejný nápad pro návštěvníky.

Měl by čerstvý odkaz obcházet mezipaměť?

Obvykle ne. Obcházení stojí kredity za odpověď, která je pravděpodobně totožná s tou z mezipaměti. Pokud zákazník trvá na vysvětlení, vysvětlete měsíc indexu a nabídněte jedno ruční obnovení na pracovní prostor a měsíc, spíše než otevřené tlačítko, které může kdokoli stisknout v smyčce.

Ochrana před lavinovým zatížením a další drobnosti

  • Jedno volání: pokud deset uživatelů otevře stejnou doménu, proveďte jedno volání do nadřazeného systému a sdílte slib (promise).
  • Naplňte mezipaměť prvního měsíčního dne pomocí úlohy na pozadí, ne v 9 hodin ráno, kdy uživatelé přicházejí.
  • Uložte odpověď _credits.remaining a upozorněte, pokud klesne pod vámi zvolený práh.
  • Ukládejte záporný výsledek 'doména nenalezena' na jeden den, ne na měsíc.
  • Zveřejněte stáří mezipaměti v UI, aby podpora mohla odpovědět na otázku 'kdy bylo toto načteno?'.
Železný kladivo a říční kameny na dílenském stole znázorňující stabilní ukládání do mezipaměti

Proč mezipaměť poráží scrapování při kontrole odkazů

Týmy, které potřebují hromadně kontrolovat zpětné odkazy stránek, často začínají skripty, které přímo dotazují vyhledávače. Tyto skripty se zasekávají. První den vypadají levně, proto je týmy používají mnohem déle, než by měly. Mezipaměť před stabilním API je obvykle levnější architektura s méně částmi, které je třeba udržovat.

Rozdíl se projeví spíše v inženýrských hodinách než na první faktuře. Udržujte mezipaměť nudnou a většina těchto hodin se nikdy nekoná.

Proč domácí kontroly odkazů neustále zasekávají?

Vyhledávače omezují automatizované dotazy, takže skript, který běží čistě pro padesát URL, se může zaseknout u padesáti tisíců. Opakování, proxy pooly a náhodná zpoždění přidávají náklady, které se neobjeví na řádku kreditů, a přestanou fungovat bez varování, když cíl změní své odpovědi.

Jak udržet dlouhou úlohu spustitelnou znovu?

Zapište každou hotovou doménu do mezipaměti průběžně. Pokud se úloha přeruší uprostřed, restart přeskočí všechny domény, které již mají uloženou odpověď, a pokračuje tam, kde skončil. Nic se neplatí dvakrát za stejný měsíc, protože klíč již obsahuje odpověď.

Spusťte úlohu rovnoměrným tempem spíše než jako jednorázový burst. Rozestupování volání udržuje logy čitelné a usnadňuje vysvětlení jakékoli změny v používání kreditů.

Kolik stojí seznam 22 000 URL s mezipamětí?

Řekněme, že potřebujete zkontrolovat 22 000 odkazujících URL pro jednoho klienta. Mnohé z nich sdílejí doménu, takže nejprve proveďte deduplikaci na domény. Těchto 22 000 odkazů se může snížit na několik tisíc unikátních domén a jedno volání bulk_dr vezme až 2 000 z nich za jeden kredit. Uložte každý výsledek podle domény a měsíce a seznam přestane být úlohou na úrovni URL. Udržujte výpočet v krátké poznámce vedle úlohy, aby si další osoba mohla úlohu znovu spustit s jinou velikostí seznamu. Číslo s uvedeným výpočtem je snazší důvěřovat než celkové součtu samotnému.

Kde to souvisí

Mezipaměť je prostřední vrstva v nastavení počítadla. Jakmile funguje, náklady na jednoho uživatele jsou předvídatelné a můžete kolem toho nastavit cenu plánu pomocí porovnání na uživatele. Krátké stránky si zaslouží jasný konec. Tato ho má.

Otázky k mezipaměti, které vidíme při code review

Měla by mezipaměť žít i v prohlížeči?

Krátká mezipaměť v prohlížeči pomáhá navigaci tlačítkem zpět, ale skutečné úspory dělá sdílená mezipaměť na vašem serveru. Uložení na straně klienta udržujte na minuty, protože uživatelé na různých strojích by jinak viděli různá čísla pro stejnou doménu ve stejný den.

Co když zákazník řekne, že chybí nový odkaz?

Zkontrolujte měsíc indexu zobrazený ve vašem UI. Pokud byl odkaz přidán po poslední aktualizaci, objeví se po další. Nabídněte poznámku, nikoliv refundaci, protože nic není rozbité.

Můžu mezipaměť obcházet na vyžádání?

Můžete, ale každé obcházení stojí kredity za odpověď, která je pravděpodobně totožná. Nabídněte ji pouze administrátorům a omezte frekvenci na pracovní prostor, abyste předešli náhodným smyčkám.

Stránkování a klíč mezipaměti

Stránkování každého jednou zasáhne. Zahrňte ho do klíče.

Akce backlinks a refdomains vracejí až 1 000 řádků na volání, s page a per mezi 10 a 5 000 a hluboké stránkování je omezeno na 50 000 řádků, takže klíč bez těchto parametrů bude pro každý požadavek obsluhovat první stránku.

Třídění patří také do klíče. Uživatel, který přepne z sestupného DR na abecední, očekává jiný seznam, a mezipaměť musí vyhovět bez nového volání do nadřazeného systému, když je celá sada již uložena.

Rychlý test zachytí většinu chyb v klíči. Požádejte o druhou stránku, změňte třídění a pak zkontrolujte, zda se cached page two liší od cached page one. Pokud se neliší, klíč postrádá parametr. Zjištěno včas, stojí to minuty. Zákazník to neuvidí. Spusťte test znovu před každým vydáním, protože nová možnost třídění je obvyklým důvodem, proč klíč selhává. Zapište ho do svého kontrolního seznamu vydání.

Plánujte tlačítko exportu samostatně: jedna úloha na pozadí, jeden uložený soubor a jedno upozornění, když je připraven.