Redis — in-memory кеширање за сајтови и продавници
Redis е слојот на брзина зад сајтовите, продавниците и marketplace-ите изградени на 4buildsite: ги држи во меморија (RAM) токму податоците што мора да се сервираат моментално — кеширани страници, сесии, кошнички, лимити на стапка — и одговара од меморијата. Изворот на вистина останува PostgreSQL; Redis го штити при голем сообраќај. Вклучен е и управуван од платформата, без никаква конфигурација од твоја страна.
Што е Redis и зошто е толку брз
Redis (REmote DIctionary Server) е in-memory база на податоци со отворен код: ги држи податоците во RAM, а не на диск, па одговорот е брз. На 4buildsite го користиме како слој за забрзување пред PostgreSQL — за сè што мора да се сервира моментално: страници, сесии, кошнички и лимити на стапка.
За разлика од дискот, RAM-от е за редови на големина побрз, а Redis додава природни структури на податоци (string, hash, листа, set, sorted set, stream) што овозможуваат сложени операции директно во меморија, без пат до главната база и назад. Обработката на командите е single-threaded, па однесувањето е предвидливо и без race conditions.
- Типична латенција под 1 ms и над 100.000 операции во секунда на еден јазол
- Природни структури: hash-ови за сесии, sorted set за топ-листи и rate limiting, stream за редици
- Single-threaded за команди → предвидливо однесување, без сложени блокади
Кеширање: твоите страници и податоци, сервирани од меморијата
Стратегијата е cache-aside: првото барање чита од PostgreSQL и го зачувува резултатот во Redis со TTL (време на живот); следните барања го земаат директно од меморија. Кога уредуваш страница, клучот се брише експлицитно — никогаш не сервираме застарени податоци преку слеп TTL.
За презентациски сајт или продавница, тоа значи дека листите на производи, менијата, популарните страници и фрагментите од содржина се испорачуваат од меморијата, без да се преоптоварува базата на податоци. При врвови (кампања, Black Friday) Redis ги апсорбира повторените барања.
- Cache-aside со експлицитно поништување — без застарени податоци
- Меморира фрагменти од страници и резултати од query, не само цели страници
- Го штити PostgreSQL при врвови на сообраќај, намалувајќи ги времињата на одговор
Сесии, кошничка за купување и заштита од злоупотреба
Корисничките сесии и refresh токените стојат во Redis: брза автентикација, автоматско истекување преку TTL и отповикување на сите уреди кога некој се одјавува или ја менува лозинката.
Кошничката за купување во продавниците изградени на 4buildsite се држи во Redis за неавтентицирани посетители — со истекување, без да ја надува главната база. Redis применува и rate limiting на контакт формуларите и на најавата, користејќи sorted sets, за да го запре спамот и обидите со груба сила пред да стигнат до базата на податоци.
- Складиште за сесии со автоматско истекување и селективно отповикување на токени
- Постојана кошничка со TTL за анонимни посетители
- Rate limiting и заштита од злоупотреба на формулари и автентикација
Реално време и редици за задачи во позадина
Redis Pub/Sub и Streams ги напојуваат ажурирањата во реално време: залиха што се намалува во живо, известување во апликацијата, статус на нарачка што се менува — сè без посетителот да освежува и без повторен polling што го замара серверот.
Тешките задачи (обработка на слика, генерирање извоз, синхронизација) влегуваат во Redis редица и ги извршуваат worker-и во позадина, за посетителот да добие одговор. Механизам за дистрибуирано заклучување гарантира дека критична операција нема да се изврши двапати.
- Pub/Sub и Streams за настани во живо (залиха, нарачки, известувања)
- Редици за задачи за тешка обработка што се извршува асинхроно
- Дистрибуирано заклучување за операции што не смеат да се извршат двапати
Предности и ограничувања
Предности
- Брз одговор од меморијата: кешираните податоци не се бараат повторно од базата
- Драстично го намалува оптоварувањето на PostgreSQL при голем сообраќај
- Природни структури за сесии, кошничка, rate limiting и топ-листи
- Pub/Sub и Streams за функции во реално време, без polling
- Редици за задачи за тешка обработка, без да се блокира посетителот
- Вклучен и управуван од платформата — нула конфигурација за тебе
Ограничувања
- Податоците стојат во RAM, што е поскапо од диск → не е за огромни количини „ладни“ податоци
- Тој е кеш / помошен слој, а не извор на вистина — трајните податоци остануваат во PostgreSQL
- Перзистентноста (RDB/AOF) го намалува, но не го отстранува целосно, ризикот од губење на последните секунди при пад
- Бара правилна стратегија за поништување, инаку може да сервира застарени податоци
Кус заклучок
Користи го Redis за сè што мора да биде моментално — кеширање, сесии, кошничка, rate limiting, реално време и редици за задачи. Не го користи како главно складиште на податоци; за тоа останува PostgreSQL. На 4buildsite ги имаш двете, автоматски усогласени: не мора да избираш или да конфигурираш ништо.
Табела со спецификации
| Можност | Детали | Каде се користи во builder-от |
|---|---|---|
| Латенција | < 1 ms (in-memory) | Страници и податоци сервирани од меморијата |
| Пропусност | > 100.000 оп/с по јазол | Голем сообраќај без да падне базата |
| Структури на податоци | string, hash, list, set, sorted set, stream | Сесии, кошничка, топ-листи, редици, rate limiting |
| Перзистентност | RDB snapshot + AOF лог | Брзо обновување по рестарт |
| Истекување | TTL по клуч | Кошничка, сесии и кеш со автоматско чистење |
| Реално време | Pub/Sub + Streams | Залиха во живо, известувања, статус на нарачка |
Redis (кеш) наспроти само база на податоци
| Критериум | Со Redis | Само PostgreSQL |
|---|---|---|
| Време на одговор за повторени податоци | под 1 ms, од меморија | десетици ms, query при секое барање |
| При голем сообраќај | базата е заштитена, лесно скалира | базата се преоптоварува, ризик од timeout-и |
| Кошничка и сесии | брзи, со автоматско истекување | табели што растат и ја оптоваруваат базата |
| Реално време | природни Pub/Sub и Streams | повторен polling, скап |
| Редици за задачи | природни, едноставни за користење | импровизирани решенија или непостоечки |
Често поставувани прашања
Што е Redis, накратко?
Ултра-брза in-memory база на податоци, користена како слој за кеш, сесии и реално време пред главната база. Податоците се држат во RAM-от, а не на диск.
Зошто не користите само PostgreSQL?
PostgreSQL е изворот на вистина (трајни податоци), но Redis ги сервира повторените податоци од меморијата и ги презема кошничката, сесиите, rate limiting-от и реалното време, штитејќи ја базата при голем сообраќај. Двата работат заедно.
Дали губам податоци ако падне Redis?
Не содржината на сајтот: трајните податоци се во PostgreSQL. Во Redis стојат само кеш и привремени податоци, а перзистентноста RDB/AOF ги намалува загубите. Рестарт на Redis не влијае на твојот објавен сајт.
Дали јас треба да го конфигурирам Redis?
Не. Вклучен е и управуван од платформата 4buildsite; ти ја користиш брзината и функциите во реално време без да администрираш ништо.
Како Redis му помага на онлајн продавница?
Кошничка за посетители, кеширани листи на производи, залиха ажурирана во живо и заштита од злоупотреба при checkout и на формулари — сè без да се оптоварува базата на податоци.
Дали Redis помага за SEO и Core Web Vitals?
Да, индиректно: кратките времиња на одговор придонесуваат за TTFB и Core Web Vitals, сигнали што се важни и за Google, и за корисничкото искуство.