Dengan pembangunan berterusan aplikasi Internet, kecekapan dan prestasi capaian data telah menjadi faktor penting. Teknologi caching telah digunakan secara meluas sebagai cara untuk meningkatkan kecekapan capaian data dengan berkesan. Antaranya, caching tempatan, sebagai satu bentuk biasa teknologi caching, juga telah menarik lebih banyak perhatian.
Apakah cache tempatan?
Caching separa, seperti namanya, adalah untuk cache sebahagian daripada data dalam sistem aplikasi ke dalam memori tempatan. Sebaliknya ialah cache global, yang menyimpan cache keseluruhan data sistem dalam ingatan, manakala cache tempatan hanya menyimpan sebahagian daripada data yang perlu diakses dengan kerap.
Kelebihan caching tempatan
Berbanding dengan caching global, caching tempatan mempunyai kelebihan yang jelas berikut:
Caching tempatan hanya menyimpan data yang perlu diakses dengan kerap, mengurangkan bilangan lawatan sistem ke pelayan cache jauh, dengan itu mengurangkan overhed rangkaian.
Caching setempat boleh bertindak balas dengan cepat kepada permintaan pengguna kerana ia hanya perlu membaca data dari memori tempatan tanpa menunggu respons daripada pelayan jauh, dengan itu meningkatkan prestasi aplikasi.
Caching setempat boleh cache medan data yang memerlukan akses kerap, mengurangkan masa capaian data dan meningkatkan kecekapan capaian data.
Pelaksanaan khusus caching tempatan
Dalam aplikasi Java, caching tempatan boleh dilaksanakan dengan mudah dengan menggunakan beberapa rangka kerja atau perpustakaan kelas. Berikut adalah beberapa pelaksanaan yang lebih biasa.
Pengumpulan peta dalam Java ialah struktur data yang digunakan untuk menyimpan pasangan nilai kunci. Kita boleh menggunakan kelas pelaksanaan Peta seperti HashMap atau ConcurrentHashMap untuk melaksanakan caching setempat. Sebagai contoh, coretan kod berikut menunjukkan cara menggunakan ConcurrentHashMap untuk melaksanakan cache setempat yang ringkas:
private static ConcurrentHashMap<String, Object> cache = new ConcurrentHashMap<>(); public static Object get(String key) { return cache.get(key); } public static void put(String key, Object value) { cache.put(key, value); }
Guava ialah satu set perpustakaan kelas Java dilancarkan oleh Google. Kelas Cache boleh digunakan untuk melaksanakan caching tempatan. Sebagai contoh, coretan kod berikut menunjukkan cara menggunakan kelas Cache untuk melaksanakan cache setempat:
private static Cache<String, Object> cache = CacheBuilder.newBuilder() .maximumSize(1000) .expireAfterWrite(10, TimeUnit.MINUTES) .build(); public static Object get(String key) { return cache.getIfPresent(key); } public static void put(String key, Object value) { cache.put(key, value); }
Dalam kod di atas, CacheBuilder ialah pembina yang digunakan untuk membina kejadian Cache, menetapkan saiz maksimum dan masa tamat tempoh cache. Kaedah getIfPresent digunakan untuk mendapatkan nilai yang sepadan dengan kunci dalam cache dan mengembalikan null jika ia tidak wujud. Kaedah put digunakan untuk menambah pasangan nilai kunci pada cache.
Redis ialah pelayan cache berprestasi tinggi yang menyokong berbilang struktur data dan operasi data yang kompleks. Kami boleh menggunakan klien Java Redis untuk melaksanakan caching separa. Sebagai contoh, coretan kod berikut menunjukkan cara untuk melaksanakan cache tempatan yang ringkas melalui Jedis:
private static Jedis jedis = new Jedis("localhost"); public static Object get(String key) { String value = jedis.get(key); if (value == null) { return null; } return JSON.parseObject(value, Object.class); } public static void put(String key, Object value) { jedis.set(key, JSON.toJSONString(value)); jedis.expire(key, 60); }
Dalam kod di atas, kami menggunakan Jedis sebagai klien Java Redis dan mendapatkan kunci yang sepadan dalam cache melalui dapatkan nilai kaedah dan gunakan kaedah JSON.parseObject untuk menukar nilai kepada objek Objek. Kaedah put digunakan untuk menambah pasangan nilai kunci pada cache, dan kaedah tamat tempoh digunakan untuk menetapkan masa tamat tempoh kunci kepada 60 saat.
Ringkasan
Caching separa mempunyai kelebihan yang jelas dalam meningkatkan kecekapan capaian data, meningkatkan prestasi sistem dan mengurangkan overhed rangkaian, dan digunakan secara meluas dalam aplikasi praktikal. Melalui beberapa rangka kerja atau perpustakaan kelas di Java, kami boleh melaksanakan caching tempatan dengan mudah untuk meningkatkan prestasi sistem dan pengalaman pengguna.
Atas ialah kandungan terperinci Caching tempatan dalam teknologi caching Java. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!