Agar hemat biaya dan memungkinkan penggunaan data yang efisien, tembolok harus relatif kecil. Namun demikian, tembolok telah membuktikan dirinya di banyak area komputasi, karena [[Aplikasi piranti lunak|aplikasi komputer]] biasa mengakses data dengan tingkat [[lokalitas referensi]] yang tinggi. Pola akses tersebut menunjukkan lokalitas temporal, di mana data yang diminta telah diminta baru-baru ini, dan lokalitas [[Alamat memori|spasial]], di mana data yang diminta disimpan secara fisik dekat dengan data yang telah diminta.
== Tembolok perangkat lunak ==
=== Tembolok disk ===
{{Artikel utama|Tembolok halaman}}
Sementara tembolok CPU umumnya dikelola sepenuhnya oleh perangkat keras, berbagai perangkat lunak mengelola tembolok lainnya. [[Tembolok halaman]] di memori utama, yang merupakan contoh tembolok disk, dikelola oleh [[Kernel (ilmu komputer)|kernel]] sistem operasi.
Meskipun [[buffer disk]], yang merupakan bagian terintegrasi dari hard disk drive, terkadang secara salah disebut sebagai "cache disk", fungsi utamanya adalah menulis urutan dan membaca prefetching. Hit cache berulang relatif jarang, karena ukuran buffer yang kecil dibandingkan dengan kapasitas drive. Namun, [[pengontrol disk]] kelas atas sering kali memiliki tembolok terpasang sendiri dari [[Blok (penyimpanan data)|blok]] data drive hard disk.
Terakhir, drive hard disk lokal yang cepat juga dapat menyimpan informasi dalam tembolok pada perangkat penyimpanan data yang lebih lambat, seperti server jarak jauh ([[tembolok web]]) atau [[tape drive]] lokal atau [[jukebox optik]]; skema seperti itu adalah konsep utama [[manajemen penyimpanan hierarkis]]. Selain itu, [[solid-state drive]] (SSD) berbasis flash cepat dapat digunakan sebagai tembolok untuk drive hard disk media rotasi yang lebih lambat, yang berfungsi bersama sebagai [[hybrid drive]] atau [[Hybrid drive#Solid-state hybrid drive|solid-state hybrid drive]] (SSHD).
=== Tembolok Web ===
{{Artikel utama|Tembolok web}}
[[Peramban web]] dan [[Server proxy|server proxy web]] menggunakan peramban web untuk menyimpan respons sebelumnya dari [[server web]], seperti [[halaman web]] dan [[gambar]]. Tembolok web mengurangi jumlah informasi yang perlu dikirim ke seluruh jaringan, karena informasi yang sebelumnya disimpan dalam tembolok sering kali dapat digunakan kembali. Ini mengurangi bandwidth dan persyaratan pemrosesan server web, dan membantu meningkatkan [[Responsivitas|daya tanggap]] bagi pengguna web.<ref>{{cite web|author=Multiple (wiki)|title=Web application caching|url=http://docforge.com/wiki/Web_application/Caching|work=Docforge|accessdate=2013-07-24|archive-date=2019-12-12|archive-url=https://web.archive.org/web/20191212152625/http://www.docforge.com/wiki/Web_application/Caching|dead-url=yes}}</ref>
Peramban web menggunakan tembolok web internal, tetapi beberapa [[penyedia layanan Internet]] (ISP) atau organisasi juga menggunakan tembolok server proxy, yang merupakan tembolok web yang digunakan bersama di antara semua pengguna jaringan itu.
Bentuk lain dari tembolok adalah [[P2P caching]], di mana file yang paling dicari oleh aplikasi [[peer-to-peer]] disimpan dalam tembolok [[ISP]] untuk mempercepat transfer P2P. Demikian pula, ada padanan desentralisasi, yang memungkinkan komunitas untuk melakukan tugas yang sama untuk lalu lintas P2P, misalnya, Corelli.<ref>{{cite conference|author1=Gareth Tyson|author2=Andreas Mauthe|author3=Sebastian Kaune|author4=Mu Mu|author5=Thomas Plagemann|title=Corelli: A Dynamic Replication Service for Supporting Latency-Dependent Content in Community Networks|conference=MMCN'09|url=http://comp.eprints.lancs.ac.uk/2044/1/MMCN09.pdf|archive-url=https://web.archive.org/web/20150618193018/http://comp.eprints.lancs.ac.uk/2044/1/MMCN09.pdf|archive-date=2015-06-18}}</ref>
=== Memoisasi ===
{{Artikel utama|Memoisasi}}
Tembolok dapat menyimpan data yang dihitung sesuai permintaan daripada diambil dari penyimpanan pendukung. [[Memoization]] adalah teknik [[Pengoptimalan program|pengoptimalan]] yang menyimpan hasil [[Subrutin|panggilan fungsi]] yang menghabiskan sumber daya dalam tabel pencarian, memungkinkan panggilan berikutnya untuk menggunakan kembali hasil yang disimpan dan menghindari komputasi berulang. Ini terkait dengan metodologi desain algoritma [[pemrograman dinamis]], yang juga dapat dianggap sebagai alat caching.
=== Tembolok lainnya ===
Daemon [[DNS]] BIND membuat tembolok pemetaan nama domain ke [[alamat IP]], seperti halnya pustaka resolver.
Operasi tulis-tayang umum terjadi saat beroperasi pada jaringan yang tidak dapat diandalkan (seperti LAN Ethernet), karena kerumitan [[protokol koherensi]] yang sangat besar yang diperlukan antara beberapa tembolok tulis-balik saat komunikasi tidak dapat diandalkan. Misalnya, tembolok halaman web dan tembolok [[Network File System|sistem berkas jaringan]] [[client-side]] (seperti yang ada di [[NFS]] atau [[Server Message Block|SMB]]) biasanya hanya dapat dibaca atau ditulis secara khusus untuk menjaga protokol jaringan tetap sederhana dan dapat diandalkan.
[[Mesin pencari web|Mesin pencari]] juga sering membuat [[halaman web]] yang telah mereka indeks tersedia dari tembolok mereka. Misalnya, [[Google]] menyediakan link "Cache" di samping setiap hasil pencarian. Ini terbukti berguna ketika halaman web dari [[server web]] tidak dapat diakses untuk sementara atau selamanya.
Jenis caching lainnya adalah menyimpan hasil yang dihitung yang kemungkinan akan dibutuhkan lagi, atau<!-- ya, ini benar-benar memoization; itu bukan salah ketik --> [[Memoisasi|memoization]]. Sebagai contoh, [[ccache]]<!-- juga bukan kesalahan ketik, "ccache" adalah tembolok kompilator C. --> adalah program yang menyimpan keluaran kompilasi, untuk mempercepat proses kompilasi nanti.
[[Database caching]] dapat secara substansial meningkatkan lewatan aplikasi [[database]], misalnya dalam pemrosesan [[Indeks database|indeks]], [[kamus data]], dan subset data yang sering digunakan.
Sebuah [[Tembolok terdistribusi|distributed cache]]<ref>{{cite journal|last=Paul|first=S|author2=Z Fei|date=1 February 2001|title=Distributed caching with centralized control|journal=Computer Communications|volume=24|issue=2|pages=256–268|doi=10.1016/S0140-3664(00)00322-4|citeseerx=10.1.1.38.1094}}<!--| accessdate =18 November 2009--></ref> menggunakan host jaringan untuk memberikan skalabilitas, keandalan, dan kinerja untuk aplikasi.<ref>{{cite journal|last=Khan|first=Iqbal|date=July 2009|title=Distributed Caching on the Path To Scalability|url=https://msdn.microsoft.com/magazine/dd942840.aspx|journal=MSDN|volume=24|issue=7}}</ref> Host dapat ditempatkan bersama atau tersebar di berbagai wilayah geografis.
== {{anchor|The difference between buffer and cache}}<!--Nama bagian sebelumnya digunakan di tautan eksternal--> Buffer vs. Tembolok ==
|