Ngobrolin Cache
Ringkasan Episode
Bantu KoreksiEpisode 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
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
31 Jul 2024
Ngobrolin Big-O
Episode ini membahas tentang Big O Notation, sebuah konsep fundamental dalam ilmu komputer yang digunakan untuk mengukur...
3 Jul 2024
Ngobrolin Elixir
Episode ini membahas tentang Elixir, bahasa pemrograman fungsional yang berjalan di BEAM (Erlang Virtual Machine), bersa...
18 Jun 2025
Ngobrolin Database
Episode ini membahas Database Scaling, khususnya perbedaan antara horizontal scaling dan vertical scaling. Topik ini dia...
Suka episode ini?
Episode baru setiap Selasa malam. Dengarkan lewat YouTube, Spotify, atau feed podcast favoritmu.
Memuat komentar dari GitHub Discussions...
Jika komentar tidak muncul karena ekstensi privasi / adblocker, kamu bisa berdiskusi langsung di GitHub Discussions .