Pabilisin ang pagtugon sa data gamit ang Redis (opsyonal)
Ang external na data na ginagamit ng estratehiya ay pumapasok bilang default sa pamamagitan ng **pana-panahong query**. Kapag ikinabit ang Redis, gigising ang agent sa sandaling pumasok ang bagong value at agad itong babasahin muli. Laging galing sa DB query ang mismong value — ang signal lang na "may bagong value" ang dumadaan sa Redis.
1. Alin ang setup mo
Dapat makita ng panig na nagpa-publish (collector) at ng panig na nagsu-subscribe (agent) ang parehong Redis. Basta matugunan iyon, gagana ang kahit anong paraan.
Lahat ay nasa isang makina — sariling install (pinakasimple, libre)
Kung nasa iisang server ang collector at agent, i-install lang ang Redis sa server na iyon at tapos na. Hindi ito dumadaan sa network kaya pinakamabilis, at hindi lalabas ng makina ang address. Sa default na setting, sa 127.0.0.1 lang ito nakikinig, kaya hindi ito bukas sa labas kahit walang password.
sudo apt install -y redis-server sudo systemctl enable --now redis-server redis-cli ping # PONG
redis://127.0.0.1:6379Marami akong server — ilagay sa isa, gamit ang private network
Kung magkaibang server ang collector at ang agent, maglagay ng Redis sa isa lang at kumonekta roon ang iba. Kung parehong cloud at parehong region, pinakaligtas ang kumonekta gamit ang private IP. ★ Kapag binuksan ang bind sa 0.0.0.0 nang walang password, mabilis itong mahahanap ng mga internet scanner. Kung kailangan talagang dumaan sa public network, gamitin ang tatlo: mahabang password + firewall + TLS (rediss://).
# /etc/redis/redis.conf bind 10.0.0.5 127.0.0.1 # ★ 0.0.0.0 금지 requirepass <긴-무작위-비밀번호> # 방화벽: 내 서버 IP 만 6379 허용
redis://:비밀번호@10.0.0.5:6379Magkahiwalay ang network — managed na free tier
Kung nasa mga lugar na hindi nagkakaabot ang collector at agent, gaya ng magkaibang cloud, bahay o opisina, maglagay ng managed na Redis sa gitna. Halos walang storage na ginagamit ang paggising kaya karaniwang sapat ang libreng limit.
rediss://…Iba ang nagpa-publish — direktang pagpapadala mula sa team o institusyon
Hindi mo kailangang gamitin ang aming collector. Kahit anong programa ay makakapag-publish basta tugma ang pangalan ng channel at ang patakaran ng payload. Ang channel ay sori:data:v1: na sinusundan ng pangalan ng table (walang schema). Cursor hint lang ang payload kaya hindi ito gagamitin kahit maglagay ka ng value — muling pinapatakbo ng nagising na panig ang sarili nitong query.
PUBLISH sori:data:v1:fear_greed '{"v":1,"last":1757462400000,"n":1}'2. Pagkakasunod ng pag-on — dapat tugma ang tatlong lugar
Kapag may kulang kahit isa, tatakbo ito sa pana-panahong query **nang walang error**. Tama pa rin ang mga value at humahaba lang ang delay, kaya madaling hindi mapansin na hindi ito naka-on.
Panig ng pag-publish — ibigay ang address sa collector
Nagpa-publish ang collector pagkatapos maglagay ng bagong row. Kung walang address, nilalaktawan nito ang pag-publish at itinatala iyon sa resulta ng run.
# ~/soritrading-fetchers/.env SORI_WAKE_REDIS_URL=redis://127.0.0.1:6379
Panig ng subscribe — i-save ang slot sa agent
Ilagay sa web ang alias at address, pagkatapos ay pindutin ang [Suriin ang koneksyon] at agad sasagot ang device na iyon kung talagang nakakonekta ito. Sa keystore lang ng device na iyon sine-save ang address — hindi ito napupunta sa server at hindi rin nalalagay sa log.
Deklarasyon — tukuyin kung aling table ang pakikinggan sa aling slot
Sa ibabang bahagi ng parehong screen, sa [Deklarasyon ng dataset], palitan ang paraan sa redis at punan ang pangalan ng slot at pangalan ng table. Kailangan ang pangalan ng table dahil dito nagmumula ang pangalan ng channel.
mode: redis · redisAlias: main · tableName: fear_greed
- Panggising lang ang Redis. Kahit may makaligtaang mensahe (hal. habang nagre-restart ang agent), hahabol ang susunod na pana-panahong query kaya hindi masisira ang mga value.
- Hindi gumagana ang subscribe sa REST endpoint ng serverless na provider. Gamitin ang TCP address na nagsisimula sa redis:// o rediss://.
- Kung pinuputol ng free tier ang idle na koneksyon, maaaring tahimik na pana-panahong query na lang ang tumatakbo. Natutukoy ng agent ang pagkaputol at kumokonekta muli, pero kung madalas itong maputol, hindi angkop ang tier na iyon para dito.
- Magkaibang namespace ang pangalan ng slot at ang alias ng DB. Kahit pareho silang 'main', magkaibang server ang tinutukoy nila.
- Sa device lang ng agent sine-save ang connection address. Wala ang aming server sa daang ito at hindi nito natatanggap ang address, sa pag-save man o sa pagbasa.
- Kahit burahin ang slot, mapuputol lang ang bukas nang subscription sa susunod na reconnect. Habang hindi pa, pareho pa rin ang mga value, mas maikli lang ang delay.
Narito ang lahat ng dokumentasyon — Gabay