Lompat ke konten utama
EP 76

Ngobrolin Cache

Ringkasan Episode

Bantu Koreksi

Episode ini membahas topik caching secara komprehensif mulai dari konsep dasar hingga implementasi praktis di berbagai layer aplikasi. Diskusi dimulai dengan analogi dompet dan penjelasan tentang sejarah caching dari hardware (L1, L2 cache) hingga implementasi di software. Pembahasan mencakup multi-layer caching yang mencakup DNS cache, client cache (browser), CDN caching, web server caching, application caching, hingga database query level caching. Episode juga menyinggung perubahan lisensi Redis dari BSD ke RSPL dan dampaknya terhadap industri, serta membahas strategi cache invalidation dan tantangan dalam mengelola cache di sisi client yang berada di luar kontrol developer. Episode lebih lanjut membahas berbagai strategi cache update untuk traffic tinggi seperti stale-while-revalidate, cache update melalui endpoint tersembunyi, dan penggunaan cron job untuk memperbarui cache secara berkala. Diskusi juga menyentuh konsep memoization di React (useMemo), opcode cache di PHP, dan perbandingan antara teori normalisasi database dengan praktek denormalisasi di dunia kerja yang lebih mengutamakan performa. Topik Big O notation dan time complexity juga dibahas dalam konteks memilih operasi Redis yang tepat untuk performa optimal.

Poin-poin Utama

  • Caching adalah metode menyimpan data sementara untuk membuat aplikasi lebih cepat dan service lebih ringan secara finansial
  • Multi-layer caching mencakup DNS cache, client cache (browser/local storage/session storage), CDN, web server, application, dan database query level
  • Redis sering digunakan untuk object level caching karena kecepatannya dan cocok untuk centralize session di lingkungan dengan multiple web servers
  • Cache invalidation di sisi client sulit dikontrol karena berada di luar kendali developer, memerlukan strategi seperti tombol reload atau service worker update
  • Strategi cache update untuk traffic tinggi meliputi stale-while-revalidate, endpoint tersembunyi untuk revalidation, dan cron job untuk update berkala
  • Opcode cache di PHP menyimpan kompilasi kode di memori untuk menghindari kompilasi ulang, membuat eksekusi PHP 8 jauh lebih cepat
  • Memoization di React (useMemo) adalah bentuk caching frontend yang mengingat hasil komputasi berdasarkan input untuk mencegah re-render yang tidak perlu
  • Denormalisasi di dunia kerja sering lebih dipilih daripada normalisasi murni karena storage sekarang lebih murah dan performa lebih prioritas
Transkrip otomatis Bantu Koreksi

Selamat malam semuanya malam Apa kabar apa kabarnya semoga sehat-sehat puasanya lancar ya amin ya sudah hampir-hampir di

akhir-akhir Ya sudah Biasanya kalau sudah dekat akhir itu tuh gembira apa kok y habis deh ramadannya gimana apa tuh Biasanya eh

Iya biasanya sedih sih maksudnya atau dua bercampur aduk bercampur aduk keduanya Kompleks Kompleks ya Kompleks It's complicated

ya kalau di kantor biasanya makin lama makin sepi ya Mulai banyak yang cuti nyolong nyolong cutiul nyolong cuti ini

teman-teman sekarang Sudah cuti THR sudah cair atau belum Wah atau ada yang sudah Ee berpindah ke kantor yang baru

biasanya ya musim-musim ini ya habis THR ya Iya Habis lebaranahan cabut cabut migrasi migrasi biasanya migrasi Iya

halo tharq apa kabar Eh ada Mas thorq jadiimana krabaya Surabaya Heeh mudah-mudahan eh Surabaya bakal banyak acara nih bakalan

acara build ai eh terus build with Ai ya lag Iya ada Ada workshop-nya juga ya Kalau enggak salah ya Heeh

He sudah lama enggak dapat THR Wow self employed Oh iya kalau yang itu berarti antara freelancer Iya atauaj Do kerj di

luar kayak Ian tuh THR dia eh Do lagi dolar lagi naik loh 15900 15900 sekarang Waduh mengkhawatirkan sebenarnya

mengkhawatirkan Tapi kalau ini tergantung spek kalau yang dapat gaji Dolar dirupiahin sekarang berarti ya lumayan ya simpan lagi biar naik

marginnya lumayan ya Heeh Iya Iya Iya Iya sama aja value-nya nanti udungjungunnya bahannya naik juga inflasi Iya kalau kalauan atau gitu yang

apa yang tidak merayakan lebaran Apakah ada THR di natal atau tahun baru Enggak ada juga ya jadi normal ajaus akhir

tahun kalau zaman Kalau sa engak ada THR Masalahnya kalau Z mau Natal tahun baru Nyepi W waktu kerja di Company Indonesia

dapatnya di i bisa milih bisa milih bisa bisa ada alternatif bisa di tahun baru ee kabisat he bisa di tahun baru

China Oh tergant Tergantung bosnya ya kan kalau bosnya chines ya bisa bisa milih di imle iya iya i

itu Du tempat kerja yang non programing cuma dua sih pilihannya cuma pas Natal atantu saya nya company Justru lebih

happy mas Iya Enggak semua numpuk di Lebaran enggak semua numpuk di lebaran gitu duitnya langsung habis jadi bisa

Iya jadi ada jadi sebagian waktu dulu itu ada yang kita ngasihnya di Natal dan Tahun Baru ada juga yang mau di iml ada

di lebaran jadi bisa terpis itu enggak ada minta di satu Muharam lagi kan kalau minta lagi satu

Muharam pusing Kita ak kadang kan orang yang enggak lebaran pun ee perlu apa perlu ekstra cash-nya pas lebaran karena misalnya ngasih

ngasih THR Ya maksudnya kalau itu tuh sih di kantor yang dulu kayak terserah hponya turun sekali setahun confirm dulu

beforehand Cuma seru juga toh kalau displit jadi banyak banget tapi ngomong-ngomong soal THR dan company itu mirip dengan topik kita kali ini cashing

I kan anggap aja bukan cash duit ya bukan cas cashing cash Iya ini cacing jadi anggap aja duit

kita itu cash gitu ya Cash Cash Numpang lewat cas Aut cash Numpang lewat iya kan lah kan ini sesuai sama topiknya ini

juga Numpang lewat kan datanya Iya jadi casing itu analoginya adalah dompet iya iya dompet kalau ada diambil Kalau enggak

ada Kebang atau ATM Iya kalau enggak ada tarik dulu di ATM kalau ada dipakai G Ben kan Zaman sekarang zaman sekarang

udah cashless pakai Kris sama aja sama aja isi itunya eh dompet digitalnya kan harus diop up juga eh dompet juga walaupun digital

ewallet iya oke wah ini saya baru nyadar nih sekarang kok e apa ee iconnya udah muncul ya kalau cuma apa karakternya

ping waving hand apa green green waving hand ini streamnya udah di Iya udah update nih berarti ya Ada Abdul Malik

Lihat transkrip lengkap (406 segmen lagi)

juga Bandung Wah Bandung halo halo Bandung udah udah udah macet belum Bandung zaman eh apa sudah mulai dekat

lebaran begini kalau masalahnya itu isinya mobil masalah standar J ini gu mari kita mulai ngobrol tentang e

tembolokbolok tembolok Oh ya tembolok tembolok bahasa Indonesianya tembolok ya catching ya ini eh pronounciation-nya juga bingung ya catching ada catching

ada cacing ada yang bilang cacing yang benarnya Apa sih yang benarnya Cash Cash ya sama Kay cash duit iya i jadi ee

salah satu metode yang bisa membuat ee aplikasi kita lebih cepat sekaligus membuat le Cepat dan server leabis kita

lebih ya lebih secara finansial bisav buat ngasih THR karyawan nyambung-nyambungin aja ada yang punya sejarah sejarah cash

enggak sih sejarah apa cash ini kenapa ada cash ini Se dari Oh iya ini dari zamannya prosesor dan memori kan ya

memori kan Iya prosesor ada I itu prosesor ya itu L L1 cash dan cash ya itu kan jadi cash secara umum

adalah hardware atau software ya Oh bisa hardw jadi ada hardware juga yang pun baru tahu dong Iya menyimpan data

sementara L1 cas sama L2 cash kan hardware hardware hardware i jadi literally data sementaranya distore di situ ya yes untuk menyimpan data

sementara ketika ada request yang sering muncul dia enggak perlu ee Reach Out atau memanggil ke database Kenapa Dan

kalau kasusnya hardware mungkin ng-save apa kayak memorinya ya iyaute gak perlu ngpute ulangute ulang enggak perlu ya

kalau misalkan komputasinya cukup berat gitu kan atau cukup memakan waktu memakan resource yang cukup besar gitu udah hasilnya Disimpan aja ke cash tuh

ada tulisannya tuh cas cas cash sama kayak duit cash bacanya cash Iya dan biasanya cash ini e

disimpan di memori kalau database kan disimpan di eh disk kan di e storage kan dan io ya io dan

eh lebih Apa ya Eh kalau mau baca data ngambil data dari database itu cenderung lebih lambat daripada baca data dari e

memori RAM itu basic komputer banget ya motivasinya ada iniya sejarahnya enggak ada ya enggak ada nah ini salah satu apa

e workflownya jadi kalau ada yang request dia cek dulu apakah di cas-nya ada eh bukan ya Bukan Ya

bukan Oh benar ya Ben tapi ini dua-duanya oh read ya kalau ada di catch maka dia langsung baca data Kalau tidak

ada bisa langsung Dir kalau ggak ada kalauak ada harus cari Terus kalau misalkan sudah ketemu dia akan masukkan ke cat-nya dan

dia return datanya sekaligus Ya begitu juga dengan right ya jug Ini ini Iya jadi dia sebelum dia kan gini

kan dia komputasi dan cepat daripada dia nunggu io dia tulis dulu ke ke Blok ke lower kalau di sini ke lower memori dia

tulis dulu sebelum dari memori dipindahkan ke disk misalnya jadi hasilnya itu enggak langsung dari CPU ke disk tetapi CPU ke ke memori dari memori

baru ke hard disisk jadi eh kayak cycle-nya gitu ya dan catch ini bukan hanya di sisi server ya ada di di apa ya

hampir di semua layer ya dari front end Iya multiayer cas BR sampai ada sampai ke server bahkan kayak

cdn itu termasukver cash juga kan Ya cdn ya itu bisa buka bisa buka link dari saya tuh multilevel

web cash kalau kita mau spesifik soal web ya bukan marketing doang ya Yang bisa multievel iya kalau itu bisa mulevel

webcast nah l ya Loh loh loh loh wah Ah ada salah pencet eh ke bawah sedikit ada nah

dari client casing cdn casing web casing application database query level object level bahkan sini masih ada yang yang

kurang ini ada Network cashing ya Network dari contohnya DNS cash DNS cash Oh DNS i i jadi waktu kita type enter

DNS itu kan disimpan juga di browser kan cash-nya he he supaya tidak ke mana-mana Nah itu cash pertama DNS cash kedua

client cash itu yang ada di browserow dari browser ada di OS BR OS browser tuh cash-nya juga ada banyak tuh

eh cash-nya BR webch-nya itu ada eh cash Yang entar kok gua lupa sih Eh kalau kita pakai apa tuh yang service work

kan ada lagi ada buat nimpan data iya iya yang bisa dibuka di Dev tools itu kan I webc masih ada storage yang lain

masih ada e beda l cash sama storage ya itu itu bukan cash ituage Bukan tapi bisa dipakai kan bisa dipakai sebagai

catching kan I namanya cas storage iudnya G kalau oke Mungkin gua harus bedain antara webc yang eh tahu enggak kalau misalnya ada header

casat control yang itu header itu kan itu itu itu webcast dan ada lagi yang untuk web api

yang pakai untuk si application kalau mau simpan cashnya manu di browser bisa di browser dari di local storage bisa di

SH storage storage sudah ada belum sih sudah ada ya SH storage bisa sama di terakhir di yang database apa namanya

index index TV index TV juga stor storage juga storage juga iya web storage i i eh terus itu di browser cisi browser

client site ya Istilahnya ya kalau yang di header tadi ya itu Ah masuk server kan so request respon Heeh Ya terus ada cdn

juga kalau kita nyimpan apa eh Static file seperti html CSS javascript foto image foto image e video dan lain-lain

itu termasuk ke catch juga ya Static aset ya Heeh Iya itu juga termasuk e CD and cch ini juga dipengaruhi sama dari

case control header header eh header case controlnya kita yang kita kirimkan dari ee dari Origin bahasanya dari Origin Nah

kalau Origin bilang Oke ini ini bisa di-cash 3 menit e nanti itu html-nya bisa dicash itu di cdn 3 menit e kalau

Static file biasanya kan dari engine X atau web server lainnya kita bisa configure kalau dia Static file bisa dic

setahun contohnya selamanya eh selamanya bisa juga sih engak mungkin pokoknya diset Panjang amat kan e CSS javascript

F semua statik deh semua ST itu bisa di cash di cdn kalau kita ngasih headernya header cash controlnya itu e jadi

mempengaruhi kalau misalnya kita e si klien atau si user kita waktu request requestnya kita enggak perlu diteruskan

ke ke Origin hanya tinggal ngambil dari cdn makanya biar cepat makanya untuk performance web performance biasanya dianjurkan

eh Ayo pakai cdn cash Uti cdn cash dengan benar makanya ee dan salah satu talknya saya Itu waktu soal performance

itu eh berdasarkan web Almanak ya yang memakai eh website yang sudah menggunakan HTML cash di cdn itu less than 50% masih di

bawah 50% yang yang benar-benar memanfaatkan cdn untuk ng cash ee html-nya kalau CSS segala macam Sudah sudah benar itu sudah biasanya dari dari

cd-nya sudah bahkan bisa me-bypass itu atau memperbaiki itu bisa cuman kalau html belum E masih baru di bawah

50%. ya statistik statistik nah eh dari cdn terus ada webver web server casaching ini biasanya reverse proxy

bisa engine X atau yang lebih spesifik ke varnish ya varnish Ada nama bis e maam produk ya i ya Ee ada macam-macam

lagi ada ha ha proxy H proxy H proxy ya itu termasuk untuk e web server caching ini juga sama hampir sama seperti cdn

tapi ini kayak bikin sendiri gitu ya kita deploy sendiri gitu kurang lebih Yaya terus juga ada database catching

ini apa nih database catching ehem data biasanya sudah dari ee misalnya kalau myquel dari i si databas-ya sendiri

sudah punya casing Oh iya databas-nya ada casing sendiri read read cash sama right cas-nya sudah punya jadi Sudah

build inill sudah punya buildin e casing itu sudah punya Oh jadi developernya tuh enggak perlu ngekonfigur apa-apa ya ya

Maksudnya enggak nging ada settingan by default sudah ada by default sudah ada ada kalau mau dicustom silakan betul nah Biasanya kalau mau di

custom itu biasanya kalau Eh kalau mau diincrease atau didecrease atau misalnya Cluster ya dia Cluster kalau casnya itu

harus benar e tetapi biasanya sudah sudah dari sononya sudah ada database cas itu sudah ada Iya database update automatically ya

dan berikutnya application casing ini eh salah satunya eh adalah lru ya list recently us l ini konsep yang cukup umum ya kep Ya

seperti yang khas bilang adalah redis masuk cas masuk ini masuk ke application Cage ini kita bikin manual ya redis

redisis itu server service untuk apapun yang key value ya storage mau dipakai buat database mau dipakai cuma sering dipakai

buat cash salah satu use case yang paling sering digunakan ya karena ada value ke value Store ya ke value

storage Iya memcatch yang yang paling benar-benar apa ya peruntukannya untuk catching ya n sesuai namanya ya mem

catch itu yang eh Kayaknya lebih dulu populer dibandingkan redis ya sebelum redis ada itu memcatch duluan Saya dulu pernah buat

eh plugin di WordPress untuk database cash bukan eh I benar untuk database cash ee ee yang saya pakai file jadi

cuma file cash Oke gitu Jadi query-nya saya md5 dan eh saya simpan sebagai ke txt dan dalam hasil dari database-nya itu hasil

resultnya itu saya ser saya serialize masukin ke dalam txt-nya jadi saya sebelum dia lakukan read ke database

Saya cek dulu TT filennya ada enggakak nah kalau ada tinggal baca filenya doang lebih cepat daripada baca query ke

database sebenarnya karena databas saat itu e terpisah server jadi perlu ada Network ini latensi kalau baca file

lebih cepat jadi itu juga bisa Jadi sebenarnya redis itu ya salah satu service yang yang sangat bagus sebenarnya untuk untuk

k value dan bisa he sebenarnya Mak keren Iya saya juga melakukan hal yang hampir sama tapi waktu itu menggunakan memcage

jadi setiap query yang dibikin itu di md5 jadi in ke value-nya ya hasilnya masukin ke memcage waktu itu habis itu

baru muncul redis eh meskipun peruntukannya bisa banyak use cas-nya bisa banyak tapi yang salah satu yang paling terkenal adalah e digunakan untuk

catching karena dia terkenal cepat eh kalau file itu itu masih R ke disk kan masih menulis ke storage kan io I masih agak lambat

redis juga ada persistent storage-nya kan ada betul betul Tapi kan enggak setiap requestnya enggak jadi dia bisa dia

jalan di jalan di memori setelah jalan di memori kalau kita buatistem Iya Jadi kalau misalnya kita WR dia akan ke memory nanti ada

background proses yang ngite ke Heeh storage eh file ya eh sori Iya ke storage ke storage Jadi sebenarnya redis ini lebih

bukan hanya sekedar catching tapi bisa juga dipakai sebenarnya untuk full e untuk full database Sebenarnya ya dan

dia juga ada ya yang model-model apa namanya ada ada bisa pluginnya juga tapi dia enggak bisa itu kan anggap Jadi

kalau misalnya Ee tidak relasional ya tidakional bukan relasional jadi hanya ke value Store aja masuknyal ya No SKL t

Iya jadi kayak table a kamu punya table a eh key value-nya apa table B key valuenya json lah anggap aja

kita sesuatu di file json udahnya apanya apa tap iya enggak bisa enggak bisa query di sana enggak bisa join-join Gak bisa

kalau mau yang rumit-rumit gitu ya setup beneran lah nah ini juga kalau misalkan Failure misalkan memorinya hampir penuh

gitu ya Dia bisa tulis ke otomatis bahkan bisa tulis ke disk juga betulik itu application catching eh ada juga database query level

catching ini apa nih iya Eh ini yang seperti yang tadi ya Yang tadi kita lakukan ya Oh ini beberapa ini kali ya beberapa

contoh dari Oh enggak ya engak ini kayak layer level levelevelnya ya object level casing Oh untuk ini ini juga yang disare biasanya

gini OB level casing ini sangat berguna kalau misalnya web servernya lebih dari sat ya wever lebih dari

[Musik] sat kita jadi Misnya p misalnya kan ada sessionnya PHP session PHP session kan nempelnya di mana nempel PHP session

nempelnya di web server di php fpmnya di php proses Nah kalau misalnya kita login masa kita login ke pas kita request kita

login ke web server a masa waktu e pindah requestnya ke web server B kita ke logout kan enggak cocok maka semua

sessionnya itu harus dientralize di objek sebagai objek level casing e jadi di sinilah gunanya yang mana Oh ditaruh jadi makanya jadi bisa

bisa web server bisa 10 sedangkan e sessionnya disimpan di redis karena i centraliz sessionnya Itu disimpan di

redis kalau disimpan di database sebenarnya bisa aja cuman kerjanya Iya karena nyimpan session itu kan expirenya cepat harus nulis dan

ada kekurangan yang lain mas R eh kalau misalnya kita lagi ngrite ke database kita lagi ngate ke database read yang ke

database akan ke loock dia harus nunggu dia harus nunggu eh database right-nya selesai baru bisa di e

select contohnya anggap kalian punya table namanya session user session ya user session dan e e login akan login

session disimpan ke database kalau misalnya ada 1000 orang berbarengan dalam 10 detik ya atau 5 detik 1000 orang sekaligus tuh login

maka database kita akan keelog sampai itu selesai Masnya waktu kita dia sudah selesai untuk request selanjutnya dia

akan nunggu orang lain selesai nglock itu kan database itu kan sehingga dia gak bisa baca enggak bisa

nge-select e data yang ada di table user session itu sampai selesai enggak bisa-bisa sampai masing-masing e nanti

akan terjadi yang namanya battleneck battleene I Nah di sini Siapa yang masih menggunakan database sebagai session harus hati-hati eh database sebagai

session storage ya Iya saya pernah kena kasusnya ini karena dulu si ci ci 3 itu by dia bisa pilih tiga Iya si i3 dia

bisa milih kan mau ke file file database atau ke redis i ya ya iya ingat ingatgat nah susahnya dengan redis itu itu

extensionnya itu membingungkan mau pakai misalnya pakai pcl atau pakai yang La ada redis CLI itu ada ada ada dua ada

banyak ya ada yang yang populer dua ya Iya dan itu kalau misalnya salah salah satu salah pilih fi-nya beda eh beda dan

enggak bisa dari C3 itu enggak bisa gitu C3 itu enggak bisa connect gitu Jadi kalau dia enggak conect dia dia akan

fall back ke database e nah atau ke file sedangkan waktu itu kan i khirnya jadi lambat kenanya di situ ya I dan apa aja

eh data-data yang bisa kita catch ini kita ngomongin ee dari Oh banyak sampai di database level Ya kalau kalau kita

ngomongin html CSS javascrip sudahudah udah udah pasti ke catch kan e misalkan dari ee database lah apa aja yang EE

bisa kita simpan ke c ya hal-hal yang jarang terjadi perubahan misalkan username email Jadi kan kalau misalkan

kita bikin aplikasi terus di kanan atas itu biasanya habis login kan ada welcome Riza atau welcome Eka gitu kan atau e

Riz gmail.com gitu kan itu berapa tahun sekali sih berubah kayaknya hampir Enggak berubah apalagi unik ya jadi Itu

disimpan enggak usah baca ke database karena setiap kali kita reload atau setiap kali kita pindah page nanti dia

nge-query lagi I kan itu itu secara mungkin kalau usernya 10 20 100 masih masih belum e terlalu kelihatan tapi

kalau udah 1000 apalagi tadi yang kkarennya sampai ratusan bakal database-nya bakal bengek itu hanya untuk read username atau email

setiap page ya itu bahaya sekali si betul Terus kalau kalau konten mah front page content sih kayak landing page

content misalnya ada feature itu harus banget kan di apa cashing karena selain biar enggak berat dibiaya juga Biar

orang setiap visitor baru datang sudahah cepat kan I iya ya biasanya gini juga kalau Imagine ada ada di halaman itu

eh trending ya trending heing artikel trending artikel trending topik Nah itu kan komputasinya anggap aja trending artikel itu kita berdasarkan jumlah

komen dan view dari page itu oke itu kan ngekalulasinya lumayan ya Misalnya He kalau artikelnya cuma 100 200 simpel

Imagine Kalau kayak Detik yang artikelnya jutaan sudah bertahun-tahun artikel mau dibuat trendingnya itu gimana gitu kan e dan enggak signifikan juga kan bedanya

detik ini sama 5 detik lagi gitu jumlah view dihitung lagi biasanya kalkulasinya ee dilakukan di separate eh proses jangan di page load bisa di

background proses segala macam nah dan hasil hasil dari kalkulasinya ya Mau disimpan di cash boleh mau disimpan di database boleh

Tetapi kan cuma hasil jadi cuma tinggal kayak Oke baca aja yang e tren artikel 1 jam terakhir 10

Id ini aja gitu Jadi waktu si aplikasi cuma tinggal ambil satu row itu query mungkin information atau mungkin sudah

disimpan sebagai seriales atau Jason yang image-nya sudah ada title-nya sudah ada jadi cuma tinggal ngambil json itu

jemplokin ke Ya udah di server Hm Iya selesai kan jadi itu cash namanya jadi komputasi untuk mencari trending

itu eh dilakukan di background backround iya Halo Audi banyak Wah halo oke Ada banyak deh eh oh ya casing

itu juga enggak enggak untuk database query ya bisa jadi Network Network request yang terjadi dari server backend I contohnya kalian

[Musik] mau apa ya ngambil data dari Google analytic mungkin punya integrasi e kembali lagi ke trending artikel kan

kita kalau mis mauambil trending artikelisaaa dari googleal minggu terakhir ini 10 artikel yang paling sering dibuka eh S minggu

terakhir atau bahkan macam-macam querynya mau S minggu terakhir dari daerah mana itu bisa dari country Mana bisa dipisah-pisah lagi terserahkan

intinya yang mau saya katakan adalah Network request yang terjadi ke e Google analytic nah dari server kita nah data yang kita

ambil itu kan kita proses dan kita simpan di cash-nya kita itu bisa di Saya paling suka pakai di redis

Hm I nah ngomongin soal redis lagi heboh lagi heboh ya ini apa namanya E Dual sourcing licensing kassus redis

yang bar ini sebenarnya enggak ada hubungannya sama cashing sama sekali sih cuma karena ngong R pasti ada Iya iya

selamat Tinggal Oh kok Selamat tinggal sebenarnya dampaknya lebih ke ini ya lebih ke e company kan ke bisnis kan

bukan ke personal Coba Cari artikelnya yang jelas deh eh dia mengganti dia mengubah licens-nya Iya ini Iya nih harus Teknika Oh ada

yang lain yang lebih jelas mana Oh enggak ada yang ada yang versi ada yang versi not er-nya enggak sih ada yang

versi tldr-nya kanak Iya karena kalau baca begini enggak intinya ini kan redis yang akan datang akan dirilis dengan

eh free and permissive use of source code under ini inilah e lisensinya sudah ganti yang tadinya bu bukan

BSD tadinya BSD sekarangsal Iya heeh sudahah pindah dia dari PSD BSD joke lagi ya kayaknya baru kemarin pindah dari BSD dari BSD ke

Gading serp dampaknya apa dampaknya adalah perusahaan-perusahaan terutama Cloud company enggak bisa sembarangan menggunakan service redis benar enggak

sihis buat di layanan mereka ya buat layanan komersil merekabar Iya setelah di-update company saya kan menyediakan layanan ee ini

eh hosting makanya sedang memikirkan ini saya enggak tahu masalahnya gimana Tapi kayaknya mereka sedang internally sedang membicarakan ini Oke kurang lebih

gitulah kira-kira ya Jadi mungkin mungkin thq bisa menjelaskannya versi a lawyer k Iya tuh yang menyediakan service redis yang paling kedapat redis

ya Eh mungkin kalau pengguna individu enggak enggak terdampak ya berarti maud saya mau lisensinya apa ya kan kita pakai eh secara langsung tidak

secara langsung kalau misalkan servis-servis sudah tidak menggunakan redis lagi secara tidak langsung kita jadi berkurang kan penggunaan redisnya

kan kalau kita pakai misalkan Project yang sudah jalan Okelah gitu kan Project yang sudah jalan masih pakai redis

Okelah gitu kan Tapi kalau Project baru kayaknya kita harus mikir-mikir pakai redis atau yang lain gitu alternatif

yang lain gitu kan ya ini kan eh switchcensing from BSD to source available license and server site public

licens Eh nah Toya yang paragraf 3 Tuh tldr-nya kan aws dan teman-teman You cannot reselling as a service Iya

kasusnya milip Elastic search betul betul sekali dan terraform yang baru juga itu juga Sama ini ini bukan sesuatu yang salah ya

perah [Musik] amal Iya perusahaan open source boleh melakukan ini karena ya mereka kan butuh duit ya Butuh makan kan butuh menggaji

orang kan ya dan itu bisnis kayak bisnis decisionnya bisnis strateginyaya bisnis strateginya Heeh hanya saja ya mungkin

ee berdampak ke beberapa kalangan terutama ya tadi apa eh penyedia jasa redis cloud itu yang berdampak Dan harus

dipikirkan lagi apakah eh kita harus menggunakan redis atau alternatif yang lain karena ada banyak alternatif juga kan Ya gitu nah cuma

menariknya baru sadar nih kalau apa siis ini mengubah licens di versi versi yang ke depan versi yang selanjutnya nih

besok berarti versi yang sekarang dan kemarin-kemarin tuh ya tetapah aja kan dipakai Kita Tadi bahas pas off a ya

udah difork aja betul sama kayak eh ews melakukan fork sebelum mereka pindah eh lcensi akhirnya menjadi Open search ya Kalau enggak salah ya Iya

dan mereka tetap jalan dengan itu redis juga kemungkinan akan dilakukan hal yang sama seperti itu Open Dis Open

Dis aw elastis Elastic B Heeh Tadi ada Dragon Fly ada aw kan punya Elastic cash kan Elastic cash Iya itu pakai redis Iya

mungkin dia ganti produk sama Elastic cash Iya ini salah satu alternatifnya namanya Dragonfly katanya ap marketing tnya aja

red with Wings jadi mereka Emang memposisikan diri sebagai buat menampung para eh refugnya Dragonfly isati with ap without

the redis management complexity jadi tinggal ganti dari redis URL ke dragon file url mungkin udah bisa jalan semua mungkin ya saya enggak tahu

ya tapi katanya begitu saya enggak pernah pakai radiis managementen l karena semuanya lewat c-nya dia doang tahunya cuma kayak ngapus cas aja heeh

heeh kita lihat ya di sini ya getting started karena bayar kan manajemennya risk manag itu bayar Oh iya bayar bayar

bayar iya i tapi yang dijual lagi sama redis adalah servis-servis-nya dia sekarang kan banyak plugin ya Bahkan kayak Vector

database yang kalau kita ngomongin Ai itu mereka ada gitu ya jualannya itu yang bisa dijual kan Itu itu yang hilang Iya itu yang

hilang ya Kalau ini mah mirip-mirip semua ya udah sama gitu cuman ganti ganti jadi tinggal Apa komen comen

option F ya redisnya diganti Dragon flly gitu Heeh Masnya di kodenya misalnya punya Shell script atau apapun

itu tinggal Iya variabelnya tetap redis tapi url-nya mengarah ke Dragon F jadi gak usah diganti Oh serrial DB juga ya saya engak

tahu nih serrial DB ini data DB apa sih belum pernah pakai jadi kepoal DB Ultimate multimodel database ya nah eh tadi kan kita udah

bahas sampai ke dari atas sampai bawah ya objek sampai apa dari awal sampai ke application casing database web server

cdn client casing Nah ini kan kita kalau teman-teman yang sudah mungkin sudah cukup familiar dengan react ya pasti ada

istilahnya memoization Pertama Pertama ketemu Sebel nih itu typo oh bukan bukan typ Heeh bukan memoise ini ini konsep eh

ilmu komputer Sebenarnya bukan hanya di front end tapi digunakan di di mana pun itu ya Iya termasuk di front end

akhirnya eh apa react juga menggunakan apa use memo ya use memo ya Heeh Ini adalah salah satu tipe casing juga kan

Ya jadi eh cara kerjanya adalah seperti remember mengingat apa Yang Eh hasil terakhir ya hasil corresponding result gitu ya dari input misalkan kita

bikin search bar Terus misalkan kita ketik eh ngobrolin yang muncul adalah ngobrolin web gitu kan Nah itu disimpan

jadi ketika user lain mengetikkan kata kunci ngobrolin dia akan memunculkan ngobrolin web gitu tanpa harus mengkalkulasi ulang Maksudnya nyari mana

sih yang matching sama string itu Iya ini juga casing jadi casing itu ada di hampir semua level dari aplikasi kita ya Mulai

dari apa server sampai networknya jugat Ping Ada sampai ke depan paling depan samp ke browser juga ada nah kalau

konteksnya apa virtual misalnya ada yang berubah satu variabel dalam satu komponen kan nggger update semua tuh seluruh aplikasi Nah itu kan bor yaak

eek browser mainade jadi ya udah dimemoise ini mirip sama kalau di php ada itu yang saya yang saya bilang tadi

e op cash op cash coba Bu Iya coba buka itu linknya biar ada ini oph op cash

e ada bagannya digedein aja biar gampang langsung mengerti mana bagannya ini itu dia nah share memory Nah jadi dari kalau

kan PHP kan just in time execution ya Jadi begitu sudah sampai mau dieexecute sebuah kodenya terus kemudian dipanggil

baru dia Jan dia cek dulu code catch-nya ada off catch-nya ada enggak Kalau ada langsung ambil reset memory langsung

execute Kalau enggak dia dip dulu dicompile dia save dulu baru di execute makanya setelah PHP 8 itu kan kencang

banget ya ya karena eh execution execution dari binary-nya itu sudah disimpan di set memory hm Jadi enggak dicompile sorry bukannya Bukan

executionnya compile code-nya itu sudah disimpan di memori jadi enggak dicompile berulang-ulang di rantai Hm kalau dia sudahudah selesai terus kayak garbage

collektif gitu hilang berarti ya kalau itu cuma ada sepanjang dia jalan no no no ini terus jadi misalnya eh di apa

namanya di request selanjutnya juga sama dia akan nanti ada ada ada ada ininya deh ada ada maksudnya ada lifetime juga

pasti ada saya engak engak terlalu cuma Maksudnya enggak langsung hilang sekali kelar kan maksudnya pas dibuka lagi ee

ada pengunjung lagi itu tetap ada persistancenya entah di mana ini mirip dengan konsep yang memoation tadi jadi

si php-nya remember compile code-nya tadi dia sudah remember compile code-nya dan kalau sama persis jalanin lifetime pengaturan di php. ini

ada settingannya Ya iya i tapi ini kan kita ngomongin apa ya user experience Gimana caranya optimiz e aplikasi kita

supaya kencang data habisnya juga kerjanya lebih ringan secara otomatis costnya atau biaya ee server kita berkurang menurun dan lain-lain kan Tapi

gimana dengan developer experience ini kan suka Kesal ya ini kok enggak berubah ya kita udah ngubah kodenya udah ngubah

data kokakub harus resiset gitu yang paling sering itu paling sering itu terjadi adalah di tempat kita sudah berubah tetapi tempat

klien belum user gak berubah Nah itu lebih bahaya lagi sih kan lebih seram iyatilahnya Ken kita buka kita buka Def

tool Def tool kan Def tool itu kita disable cash contoh kita Bypass ya kita Bypass cash Nah itu tuh paling gaat itu

Iya jadi di apa di ilmu komputer itu ada dua hal yang sulit ya yang sulit ya Yang

pertama adalah case invalidation yang kedua adalah menamai variabel atau menamai fungsi atau menamai sesuatu gitu ya betul jadi e jadi istilahnya itu adalah

case invalidation eh ngecek apakah cash-nya masih valid atau tidak gitu ya ketika misalkan t Soalnya kalau Heeh gimana gimana lanjut soalnya kalau

misalnya kita cash-nya enggak diinvalidate sama sekali ya gawat juga Maksudnya user dapat data yang basi tapi kalau misalnya kita terlalu terlalu

agresif eh ngapus cash ya Sama juga bohong kita enggak dapat manfaatnya cash kan he betul jadi ketika datanya berubah

misalkan kayak apa ya kalau misalkan e datanya yang berubah cepat kayak counter gitu He terus kita Cage ya telat kan

heeh Gimana caranya si case ini kan di di berbagai level kan di berbagai layer tadi kan yang mulai dari browser eh

database application bla bla bla bla bla bla nah ketika ada perubahan kita harus kayak ngeeblast e broadcast ke semua

tolong ini diubah gitu untuk kasih tahu bahwa ini datanya sudah berubah itu yang membuat aplikasi kita menjadi ee

Kompleks lebih kompleks gitu Iya itu yang sering terjadi adalah missmching antara e pertama browser cas brow itu

punya time to ada ttnya ada punya punya counternya sendiri itu kapan terus kedua cdn cashh itu juga

punyaya juga ada terus ketiga itulic itu kan punya itu juga sama terakhir adalah application cas itu juga

punya Jadi kalau misalnya Lay ini saya gakak ng yang ke belakang lagi yang databas segala macam ya ini masih dari

ke atas itu aja sudah pusing urusannya [Musik] kar ini bed Diak tu berapa lama misalnya kita sudah

invalidate yang application sudah kita flash tetapi di eh tadi yang di eh rever Pro bagaim bahasanya cas dia ada P cas yang

di P case ya Ada P cas yang di sisi R proy itu harus diinvalidate habis diinvalid CDnya juga harus dialid

lagiah ehal desident nah di browser kan yang di klien Iya itu di luar kontrol kita enggak bisa itu

ee bis eh I karena harus nunggu E time-nya expire dulu kan harus tunggu time-nya expire Iya atau kita bisa perintahkan tolong

hard reset hard reload atau kita sering bilang Oke sudah coba di inognito Belum kan seperti itu Nah makanya cash

itu serba salah e bukan serba susah ngaturnya susahageenya kalau di worker kan ada itu bisa yang tahu

ggak sih yang e nged ada kemungkinan ada versi baru Nah terus sering lihat gak sih uinya Eh ada

perubahan silakan reload Nah ada button deh kita munculin button user ngeklik Eh kalau on ya udah casnya dilear harus

terus diad ulang itu bisa juga ulangar manggil Yang baruter cashbter gimana tadi backend I kalau di back end kita masih bisa e

mungkin bisa sedikit kontrol lah misalkan man man jadi misalkan misalkan nih kita Trigger ketika database-nya berubah atau di satu data berubah kita

bisa kirim kayak apa ya event ke mungkin ke proxy server kah atau ke berbagai casing-casing yang lain to tolong ee

diflash e tolong datanya dihapus di memori misalkan diedis atau di mana itu bisa kan gitu tapi kalau di klien ya

tadi Eh solusinya Eka sih kalau di klien kan yang kontrol bukan kita ya kalau misalkan tadi ada tombol e oh datanya

berubah silakan klik oke dia enggak mau klik juga jadi enggak berubah dia enggak mau update Ya udah itu risikonya itu

Masalahnya dia Heeh jadi ee kalau di e web itu ya jadinya begitu apa ee komplikasinya karena ada hal-hal yang

tidak bisa kita kontrol sama sekali Nah ini nih contohnya Coba buka oke biar kalau ada yang belum pernah

pakai pengin cari bisa itu sendiri how to display new version available Oke dip wa oh ini ya ini biasanya Iya ini

biasanya si dari application-nya kita ada background refresh kan ya background refresh dan meminta meminta refresh e di

page itu ada versioningnya Heeh Ya kita harus bikin dulu versionnya harus bikin ya Heeh nanti si background refresh inilah yang

meminta terus ke ke eh akan melakukan request ya Ada ada ada yang baru Enggak ada yang baru enggak

gitu dia akan pulling konsepnya i i i h jadi kayak ini ya apa kayak long polling gitu

ya dia terima EV verin pasang pasang lener aja nanti dapat event kok kalau ada Oh ada listenernya oke oke

oke cuma kalau usernya gak mau ngeklik refresh ya itu kayaknya udah di luar Iya di luar kendali ya

kendul cuma penasaran deh kalau misalnya website yang kayak apa ya yang saham gitu yang punya yang time sensitif

banget itu eh settingnya kayak gimana ya mereka enggak pakai cash yang mereka enggak pakai cash yang seperti itu saya

pernah bikin yang untuk apa namanya situs olahraga eh saya enggak bisa sebut judulnya Nda tetapi situs olahraga itu ada Life Score Oh

Life Score ada score basketb ada live segala macam dan itu dia cuma kayak ini kayak kayak snipet kayak widget aja gitu satu

bar gitu Jadi kalau misalnya ada gold dia hijau harus ada bunyinya gitu Jadi kalau misalnya dia lagi orang yang lagi

baca beritanya ada skor yang naik dia akaning ada ada animasinya Nah itu tekniknya saya buat itu si bagianetnya itu sendiri itu enggak

pakai eh apa namanya pakai application sendiri P Waktu itu saya pakai react pakai react application sendiri yang connect vianya

via webscket ya dan itu yang akan ngping terus dan dari data yang webscketnya itu pergi meminta ke live data gitu langsung

request yang di yang didapat itu cuma sebenarnya di server itu dia e dapat file txt aja sih jadi gak engak ada an

aneh prosesnya txt kalau ada ada data yang yang baru masuk dia akan langsung ee kalau enggak terjadi apa-apa

kosong karena data awalnya sudah ada base-nya ada terus mendengarkan event yang e kalau terjadi baru dia cuma langsung data

langsung saya baca langsung kirimkan Jadi bisa cepat jadi yang jadi yang dipting ditunggu dadakan tuh adalah update nya

ya bukan keseluruhan data skor-nya y dan itu ee pakai soket ya jadi terpisah tren h i ini ada contoh kalau di sisi

server eh misalkan menggunakan Express gitu ya atau note server lah ya Jadi kalau misalkan ada update Gitu pakai

event misalkan ada sesuatu yang dipost kita datanya di-update masuk ke Apa ke ditunjukin apa sih ohya S

enggak kelihatan ya belum ya Kelihatan Nah ini dia zoom in zoom in ya Ee ya ini Jadi ini contohnya kayaknya

pakai redis Ya udah gitu ketika ada apa ada update terjadi dan mungkin ini update Ke Entah itu orm atau ke database

kemudian secara otomatis juga kita melakukan delayus data yang ada di ee redisnya sehingga nanti ketika user mengas

datanya enggak ada di casching akhirnya diambil baru baru di casching yang baru lagi gitu Ini contoh sederhananya nah ini

related sama Coba buka yang swr deh yang ST while revalidate ST while revalidate i i ini cas strategy Yes kalau ini B

beda sih beda tapi related Jadi intinya dikasih dulu yang lama yang kan udah teranjur a nih Sampai sampai udah kedate

gu ya Heeh Ya dikasih dulu tapi eh setelah jadi yang lama udah dikasih ke user dibalik layar dia nyari ngecek lagi

Tapi kan enggak buru-buru nihudah udah santai Nah user selanjutnya yang dapat yang baru Oh oke oke oke nah kalau

detailnya eh itu b kalau apa bego-begonya sih kayak tadi tuh ya this project isn't running I belum ada harus

ada yang pencet Enggak ke cash dia enggak ke cash ini kalau gratisan glit kan dimatiin Iya otomatis mati kan i i running

[Musik] ver By the way kalau beginiigini bisa loh Kalau misalnya kita mauu update kodenya tinggal sama je kan ini masih di Google

udahak Iya workb JS dan web.dev itu kan ada di github kan ininya kan ada ada ada Heeh tingal dulu pernah bikin full

request enggak bisa full request Kok bisa full request Gak maksudnya Yang swr demo ini kan bisa Di bisa Di bisa di for

dibenerin nanti di dip request di kalau mau benerin Iya itu lumayan nambah-nambah portfolio nah ini penjelasannya bagus ya

tadi yang atas sikit nah ini contohnya aja H cas respon is Fresh and ususe as is to fulfill browser request no

revalidation Nah ini kan baru banget ya belum berubah Heeh eh S sampai 1 detik sampai 60 detik ya 1 detik sampai 1

menit gitu ya he cash respon is stale stale ini artinya apa eh basi basi belum Basi banget ya tahu enggak

sih kalau kayak roti atau apa mulai keras gitu sebenarnya dimakan juga enggak apa-apa kan tapi ah enggak segar

Apa ya bahasa Indonesianya basi ST basi stil ya istilahnya datanya udah udah enggak valid lah ya kalau basi kan

dimakan kita masuk rumah sakit ya itu yang yang bahaya banget kalau ini kan sebenarnya udah mulai agak keras-keras

agak enggak enak tapi ya dimakan enggak apa-apa ya gituah kalau kalau bahasa Jakarta Selatan itu daripada bilang basi

lu ST du Ah gitu Oh ya ini ee perkara angka 60-nya dari mana itu ya Scroll ke atas

sedikit ini kan cuma contoh doang Ya apa eh tergantung kita pasang kita pasang header apa eh cas control headernya jadi

Engak harus enggak harus eh 60 H harus terserah kita nih ya mau ngisi berapa ya heh Heeh pokoknya prinsipnya cara

kerjanya kayak gitu kalau ada service worker Lebih susah lagi l ngurus casennya karena service workernya harus diinvalidate lagi

manualnya jug itu pusing jadi i case ini sangat membantu untuk user tapi juga tap agakelop untukeloper experinya kurang

yaing management untuk yang advanceak bisa boleh boleh mau Mau demo engak gak gak demo gak demo cuma

ada kode ada kodeya artikel aja dulu pernah waktu di company lama E ini Nah sambil nunggu nih Ada yang

minta Bahas load balancing Wah menarik ya Bisa tolong submit dong di sini/obr web nanti kita diskusikan ee

siapa tahu bisa kita bahas di topik-topik berikutnya y bahas tentang database scelling nah ini juga benar bisa juga tolong dibantu ya dibantu bisa

biar kita diskusi di sana oke Sudah sudah ready y silakan udah dimasukin belum Oh belum screennya Sor itu malah Masnya hilang buukanya Iya

nah jadi dulu waktu saya kerja di sini di company ini t up t up dan Oh dulu

namanya Evan Crus kirain Bu kirain ganti teman satu tim satu tim saya dulu sebutan saya ee dia karena kita sama-sama Ivanka dulu

ada Inside jnya dulu dia panggilannya K1 dan saya K2 K1 K2 enggak sampai laan ya ku beres nanti

nah ini kodenya mungkin kode WordPress tapi sebenarnya kode umumah mau diterapin PHP goleng atau javascript juga bisa Ya intinya ini server S cash

itu anggap kalian punya Ris cash atau memory cash atau whatever cash ya jadi e cash get sama cashs biasanya ya set I

apa yang masalahnya dari kode ini kalau kita lihat ya kita kan ada cas ke-nya datanya kita ambil Kalau Datanya ada

return data kalau datanya enggak ada eh eh B dat ngapainlah gitu ya pokoknya sebuah proses yang Operation untuk membuat data itu

dan data itu kita simpan ke cash selama time 1 jam di sini ya 1 jam apa yang salah sebenarnya enggak ada

yang salah kan ini sebenarnya cara yang tadi sampel yang Mas sayaa kasih juga contohnya seperti ini I Ya kurang lebih

kurang lebih ini workfow yang umum kan ya Iya betul kalau misalnya under e misal apa yang masalah di sini kalau

misalnya yang terjadi kalau cash-nya call atau habis yang terjadi di sini adalah semua request tersebut akan menghantam masuk ke dalam sini saat cas

call ya enggak jadi ee teranjur kosong ya Iya kan misalnya anggap aja kita untuk proses data itu 10 detik sedangkan

request kita per per detiknya aja sudah 1.000 Berarti ada 10.000 request yang enggak punya cash betul enggak

m karena proses mengisi cash-nya butuh 10 detik sendiri Iya maka 10.000 kali lakukan Operation dan 10.000 kali nge-ad

ke cash betul Enggak Oh cashnya ikut ikut kena Dis gitu iya iya betul enggak benar benar Nah itu itu

konsep berpikirnya jadi enggak ada yang salah dengan kode ini kalau misalnya eh eh cas-nya aman-aman aja bukanak kalau

eh requestnya load-nya rendah Oh oke load-nya rendah ya aman-aman aja tapi kalau sudah di atas 1000 per detik ya

hancur nih casay gitu ya nah I iya ee cara yang lain ya macam-macam jadi ee untuk mempersingkat waktu ya tentunya

kita kan ada ada enam strategi pertama do nothingting kedua bla bla bla eh enam tapi yang nomor satunya do nothingting

ya Jadi ada bagannya dibuat contohnya gini dari start Apakah server kita banyak trafiknya Kalau enggak ya sudah

dating aating I Nah kalau ee medium traffic eh nanti bisa pakai mutex mutex itu gini e anggap aja yang kayak si Eka sampaikan

tadi cash while eh sorry stale while revalidatingalid jadi kita punya tiga kita punya dua cash ke yang pertama

stale dan ketiga updating jadi si cashnya kita itu enggak pernah e engak pernah invalid Tetapi kalau misalnya dia

dia apa namanya dia expire Kasih dulu kasih dulu e yang stnya kasih dulu yang stale mana dia ya

kasih seandya kasih yang ST ini cash key yang stale sor yang ini yang ini yang stale data ada dari stnya dan sekaligus

ngupdate nantinya Eh tapi ada proses untuk ngupdate itu yang mirip dengan apa yang Eka bilang stalid itu yang kalau misalnya medum

traffic sat lagi kan Yang Yang ketiga tadi kan yang di baris ketig tadi yang mana sih yang ini bentar up

Iya dia kalau sudahihasih Terata dia mis lag sesai kasih yang stale Heeh ST kasih ke user dulu Biar yang apaate yang

di melakukan updating jadi kita ada key key updating sendiri gitu ya Nah di updating itu menjalankan ini Nah kalau

misalnya ternyata trafficnya gede e kita punya engine X gak Kalau punya casing ya itu lma itu misalnya gini

e apa namanya kayak pakai e kalau di kalau di eh kita bisa bikin sebuah endpoint baru ya hanya untuk ng-update

cash jadi cash kita itu cash kita itu umurnya panjang atau Unlimited ya selama mungkin e terus kemudian ternyata kalau

casnya eh habis kita Open new connection dari server kita untuk ke server kita sendiri ngerti enggak jadi

e kode kita ngrequest ke server kita sendiri yang endpoint sendiri yang hanya untuk ngupdate cash jadi eh endpoint itu

kan enggak ada yang tahu enggak ada enggak diopen secara public jadi endpoint itu akan bergerak untukali doang Iya ng-hitnya sekali

doang untuk memperbarui cash kita itu bisa dengan cara seperti itu kalau kita misalnya mau pakai kron kita bisa juga

pakai yang namanya CLI jadi kita jalanin pakai CLI yang jalan setiap s e 1 jam 2 jam yang

Sinya ini yang untuk ngrecas jadi yang dierve ke customer itu tetap yang eh tetap cash yang selalu ada enggak

enggak expire tetapi untuk memperbarui cash kita pakai crown lewat sialai untuk memp ya crown job lah ya Bahasanya ya E

background job Ya terus yang ketiga itu Eh ya sama sih yang kayak ini kayak krownjob juga tapi dia ngerbarui sama

mirip nomor sama nomor 5 sama H so itu kira-kira makudnya kalau kalian punya ee masih trafficnya rendah Ya udah

enggak usah pikirin tapi kalau sudah mulai banyak ya eh perlu strategi yang berbeda untuk memperbarui cash karena

kalau kalian tetap pakai metode seperti ini e akan fail eventually akan fail itulah kira-kira karena si nambah

Lay lag lagi kan di tengah-tengah antara database layer sama application layer tengah-tengahnya ada case layer case layer Ini kalau misalkan requestnya

banyak dia akan overload juga kan Apakah si cas si cas server ini harus kita scaling lagi jadinya nanti yang tadinya

costnya e apa murah malah jadi mahal juga ujung-ujungnya kan betul untuk apa supaya mengantisipasi si request yang

banyak ini gitu kalau kita e tidak mengantisipasinya juga di si kode kita saya sampai punyaya pengalaman bahkan proeknya masih jalan

kayaknya ya ada satu Project itu enggak boleh ngenuk cash karena ya itu kalau di New Maksudnya di

clear cas-nya itu heeh cashnya kosong server akan server langsung akan Spike servernya akan Spike semuanya akan dapat 504

W seram juga time out ya time out itu gua langsung apa namanya Oh dari dari nyengirnya ini pernah

kejadian kayaknya seri Oh paling dimarahin sama Leader siapa yang siapa yang ng clear cash ini Wah itu itu enggak bisa kayak misalkan over

the weekend di jam 12. malam gitu di crrown job di clear catch gitu Ngapain jangan Oh langsung naik tetap naik ya

langsung naik yang benar tu jangan jangan dinuk semua jadi oh yang butuh k yang butuh dirubah aja yang dirubah

jangan semuanyaus i i Nah makanya di company saya ituh ada redis-nya pun ada failover Jadi kalau misalnya satu servisnya down

dia bisa fail over ke redis yang lain itu juga ada kusternya Oh iya iya ada kluster berartiatanya harus ada semua kan harus

sama J kayak gua bilang tadi kayak kalau gua ngclear case saja itu 504 itu semua karena e si originnya itu sibuk

memperbarui cash dan sibuk kan trafficnya gede banget tuh trafficnya gede jadi dia begitu satu traffic ngbild cas dan ngb kalau dia ngbil casnya belum

selesai sudah ditimpa terus dengan requesti kan lagi ngspike itu bisa bisa bisa 100% dan tiba-tiba si apa namanya

si web servernya itu kembang jadi banyak sampai salah satu pentingnya belajar notation juga ya jadi M apa

berusadar complexity-nya complexity-nya kalau banyak yang visit kayak gitu kalau cuma satu apa kan sebetulnya betulul Pusing dah

belum lagi Network request ke misalnya kayak Google analytics Elastic search segala macam itu banyak tapi ya pengalaman

e kalau jangan takut ya ngak clear cas paling dimarahin doang I nah ngomongin tadi apa E Big

O ini mungkin bisa kita mention juga eh tentang redis karena salah satu dokumentasi yang apa e eh menyediakan

informasi tentang Bigo itu ready salah satunya mana ya ada komen ya Kalau enggak salah ya misalkan kita mau set

ada enggak set banyak ya Banyak sekali misalkan Get Set Oh gets dia ada kasih tahu bahwa ini

Operation ada di atas tadi ada di atas stop stop itu time complexity time complexity nih Nah iya soalnya

kasus-kasus gini yang perlu di apa kita kita enggak kebayang kan kalau cuma nyoba sekali kita nyoba sendiri pas lagi

developmentah semua engak apa-apa mana-mana aja Cuma yang kayak tadi Ehan jelasin begitu 100 orang visit tiba-tiba bom l Iya ini kan kalau kita

belajar Bigo biasanya kan kurang praktikal kan kalau ini kan udah dipakai istilahnya di banyak yang pakai dan kita

bisa tahu kalau incrementen itu eh kompleksitasnya seberapa kalau yang kompleksitasnya lumayan gede apa ya Eh pop pop pop ya Oh ini ni nih ini ni

nih Insert on insert insert itu apa left Insert ya masukin ke sebelah kiri ya paling depan ya pop pop juga lumayan loh karena dia

ngambil terus geser coba pop mana pop pop kalau pink pop enggak ada pink satu sama ada pop cari aja Pop nih Yang mana Banyak

dia soalnya pop Iya L pop apa apa ini ya pop ya Apa aja sih pop apop komen kan di komen kan enggak ada

search-nya ya Ah ini dia Pop Pop yang mana aja sama sih airpop juga boleh ap ap on tuh kan on kan

karena dia ngambil terus geser terus geser ini eksponensial ya engggak Eh linear apa eksponensial where n linear ya where n is the number of

tergantung jumlah elemnya He kalau seut linear linear linear linear berarti sejuta ya Iya kalau eksponensial kan yang pangkat

kan pangkat n Iya pangkat n Nah ini bagus nih apa E dokumentasinya bagus karena menyediakan ini jadi kita bisa relate

lah kalau teman-teman enggak tahu tentang Big O baru belajar terus gimana sihas Ba lagi deh i kalau baca gini

Ngerti dong maksudnya apa gitu kan ya Iya pokoknya kita secara kasar kebayang enggak sembarangan pakai ini kalau

misalnya knya bakal banyak he kita tah komen ini on Gimana ada alternatif lain enggak Yang bisa kita lakukan mungkin

yang tadinya kita pakai elpop tapi kita pakai dua komen cuman kalau digabungin hasilnya lebih rendah daripada on

misalkan gitu Ini kan contohnya contoh kasus di dunia nyata contohnya kasus ya contohnya Ee Kita kan diajarin relasional database

contohnya gini Eh kalau misalnya table a sama table B itu many to many kita bikin satu tempel temporary

untuk mapping di tengahnya Oh tabel transisi e ada isinya foren key foren key kan He iya for Jadi Bu buat

ng-mapping ya Eh itu itu teorinya sih begitu ya tetapi di dunia nyata bagus mana sih Kalau misalnya itu dipisah

table normalisasi dan dinormalisasi ya Atau mungkin lebih lebih one too many deh one too many one to many misalnya

person sama departmen misalnya eh yang kita masukin departmennya itu id-nya doang di di table employee ya kan dan waktu kita select

kan harus dijoin Iya kan Nah Tetapi kalau misalnya hanya sekedar hanya nama itu aja kalau misalnya ya

sudah 1% sat sat tambah satu kolum aja di dunia nyata lebih cepat mana sebenarnya untuk selectnya contohnya Nah

itu eh yang masih normalisasi sama ada normalisasi untuk kompleksitas e kadang kita ngedesain table aja juga harus

dipikirin kalau misalnya enggak butuh-butuh amat di table baru ya udah ditambahin aja di di table yang sebelumnyanya makanya kan di apa Kalau

waktu di kuliah kita belajar normalisasi yang tadinya table itu engak boleh ada duplikasi dan lain-lain makanya dibikin

table terpisah di dunia kerja kita belajar denormalisasi ada beberapa data yang enggak apa-apa biarin apa namanya duplikasi e karena mungkin ya waktu di

apa ee normalisasi itu diciptakan itu harga storage Masih mahal kalau sekarang kan storage cenderung lebih murah kan

jadi Biarin aja duplikasi gitu asal eh ada eh apa source of truthnya jelas jelas gitu Ini update-nya dari mana gitu

intinya itu itu contoh G antara teori sama praktik ya antara Mas teori akademis sama kondisi di lapangan iya

ini kayaknya menarik juga ya kalau kita bahas kayak apa ya teori kompleksitas eh Big O dan lain-lain ya Seru ya kayaknya

ya itu berhubungan dengan performance juga kan kadang kadang saya juga ah daripada pusing-pusing bikin table baru saya simpan aja di table sebelumnya

tetapi kontennya itu saya simpan sebagai json oh why I don't care yang penting masukin aja sebagai json karena datanya sudah

saya butuhkan di satu tempat ngapain Saya harus query ke mana-mana udah satu table json beres karena butuhnya cuma itu Iya

betul betul betul jadi ya Yang penting aware aja kitanya aware terhadap eh operasi yang kita udah ada di arsitektur

arsitektur di sisirnya kan ada Ada he jadi tinggal e tinggal pilih yang mana yang paling optim untuk keperluan pada saat itu ya

jadi selalu kalau ditanya jawabannya adalah it depend ya pertanya-pertanyaan seperti itu oke menarik ya malam hari ini e selain

kita bahas tentang tembolok atauing kita juga dapat topik-topik baru ada yang minta balancing ada yangabas scing tah dimasukin

keth nanti kita lanjut diskusi diskusi di sana tadi juga apa tentang kompleksitas juga kayaknya menarik ya untuk kita bahas sekali-sekali ee basic

back to basic gitu butuh juga kita eh ng-refresh yang mungkin udah Terlupakan gitu ya Nah untuk malam ini Mungkin

cukup dulu eh untuk malam ini kita ketemu lagi minggu depan minggu depan itu kacing cacing nyari SB

udah lebaran ya hari Selasa ya lagi lagi lagi lagi meneropong hilal lagi meneropong hilal tanggal 9 belum belum

lebaran tapi udah libur kan ya Heeh udah libur dan yang mudik juga pasti udah di kampung halaman

perjalananmacet Iya selamat liburan selamat lebaranaran Tapi kita tetap ada walaupun rekaman ya kita tetap hadir Jadi kalau

teman-teman lagi mungkin lagi diper jalanan naik kereta atau kendaraan lain Heeh bisa nonton kita ya atau Mal

bersosialisasi sama angota keluarga ya kan Pak paks pur-p sibuk atau anggota keluarganya diajak nonton bareng Selamat dapat THR bagi

yang dapat ada yang ggak dapat juga gak apaapa jadi untuk malam ini udahan dulu terima kasih banyak buat semuanya yang

sudah hadir dan sudah meramaikan kita ketemu lagi Selasa depan Sampai jumpa minggu depan Bye bye bye

Deskripsi asli dari YouTube

Yuk mari kita diskusi dan ngobrol ngalor-ngidul tentang dunia web. Agar tetap up-to-date dengan teknologi web terkini. Topik, tautan dan pertanyaan menarik bisa dilayangkan ke https://ksana.in/ngobrolinweb Kunjungi https://ngobrol.in untuk catatan, tautan dan informasi topik lainnya.

Episode Terkait

Bagikan:

Suka episode ini?

Episode baru setiap Selasa malam. Dengarkan lewat YouTube, Spotify, atau feed podcast favoritmu.

Pilih Cara Langganan

Memuat komentar dari GitHub Discussions...

Jika komentar tidak muncul karena ekstensi privasi / adblocker, kamu bisa berdiskusi langsung di GitHub Discussions .