Rumah >Java >javaTutorial >Bagaimana untuk melaksanakan caching teragih dalam pembangunan fungsi backend Java?

Bagaimana untuk melaksanakan caching teragih dalam pembangunan fungsi backend Java?

WBOY
WBOYasal
2023-08-04 23:34:42955semak imbas

Bagaimana untuk melaksanakan caching teragih dalam pembangunan fungsi backend Java?

Dengan perkembangan teknologi Internet, pembangunan back-end Java menghadapi peningkatan tekanan serentak dan pemprosesan data. Untuk menyelesaikan masalah ini, caching yang diedarkan telah menjadi cara teknikal yang penting. Dalam artikel ini, kami akan meneroka cara melaksanakan caching teragih menggunakan Java.

1. Apakah cache yang diedarkan?

Cache teragih ialah teknologi yang menyimpan data cache pada komputer pada nod yang berbeza Dengan mengedarkan data cache ke nod yang berbeza, ia meningkatkan prestasi dan kebolehskalaan sistem. Sistem cache teragih biasa termasuk Redis, Memcached dan Ehcache.

2. Gunakan Redis untuk melaksanakan caching teragih

Redis ialah sistem penyimpanan struktur data memori sumber terbuka yang menyokong berbilang jenis data, seperti rentetan, jadual cincang, senarai, set, set tersusun, dsb. Berikut ialah contoh kod yang menggunakan Redis untuk melaksanakan caching teragih:

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;

public class RedisCacheProvider {

    private static JedisPool jedisPool;

    static {
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxTotal(100);
        config.setMaxIdle(20);
        config.setMaxWaitMillis(1000);
        jedisPool = new JedisPool(config, "localhost", 6379);
    }

    public static void set(String key, String value) {
        try (Jedis jedis = jedisPool.getResource()) {
            jedis.set(key, value);
        }
    }

    public static String get(String key) {
        try (Jedis jedis = jedisPool.getResource()) {
            return jedis.get(key);
        }
    }

    public static void main(String[] args) {
        set("name", "John");
        String name = get("name");
        System.out.println(name);
    }
}

Melalui kod di atas, kita dapat melihat bahawa kita perlu mengkonfigurasi kumpulan sambungan untuk mengurus sambungan dengan Redis. Kemudian, gunakan kaedah set untuk menyimpan data ke dalam Redis dan gunakan kaedah get untuk mendapatkan data daripada Redis. set方法将数据存入Redis,并使用get方法从Redis中获取数据。

三、使用Memcached实现分布式缓存

Memcached是一个开源的高性能分布式内存缓存系统,可以用于缓存数据库查询结果、API调用返回结果等。下面是一个使用Memcached实现分布式缓存的示例代码:

import net.spy.memcached.MemcachedClient;

import java.io.IOException;
import java.net.InetSocketAddress;

public class MemcachedCacheProvider {

    private static MemcachedClient memcachedClient;

    static {
        try {
            memcachedClient = new MemcachedClient(new InetSocketAddress("localhost", 11211));
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

    public static void set(String key, Object value, int expireTime) {
        memcachedClient.set(key, expireTime, value);
    }

    public static Object get(String key) {
        return memcachedClient.get(key);
    }

    public static void main(String[] args) {
        set("name", "John", 3600);
        String name = (String) get("name");
        System.out.println(name);
    }
}

通过上述代码,我们可以看到,首先我们需要创建一个MemcachedClient对象,并指定要连接的Memcached服务器地址。然后,使用set方法将数据存入Memcached,并使用get方法从Memcached中获取数据。

四、使用Ehcache实现分布式缓存

Ehcache是一个开源的Java分布式缓存框架,可以用于在内存中缓存数据。下面是一个使用Ehcache实现分布式缓存的示例代码:

import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

public class EhcacheCacheProvider {

    private static CacheManager cacheManager;
    private static Cache cache;

    static {
        cacheManager = CacheManager.create();
        cache = new Cache("myCache", 10000, false, false, 3600, 3600);
        cacheManager.addCache(cache);
    }

    public static void set(String key, Object value) {
        Element element = new Element(key, value);
        cache.put(element);
    }

    public static Object get(String key) {
        Element element = cache.get(key);
        return element != null ? element.getObjectValue() : null;
    }

    public static void main(String[] args) {
        set("name", "John");
        String name = (String) get("name");
        System.out.println(name);
    }
}

通过上述代码,我们可以看到,首先我们需要创建一个CacheManager对象,并创建一个缓存对象。然后,使用set方法将数据存入缓存,并使用get

3. Gunakan Memcached untuk melaksanakan caching teragih

Memcached ialah sistem caching memori teragih berprestasi tinggi yang boleh digunakan untuk cache keputusan pertanyaan pangkalan data, keputusan pulangan panggilan API, dsb. Berikut ialah contoh kod untuk menggunakan Memcached untuk melaksanakan caching teragih:

rrreee

Melalui kod di atas, kita dapat melihat bahawa pertama sekali kita perlu mencipta objek MemcachedClient dan menentukan alamat pelayan Memcached untuk disambungkan. Kemudian, gunakan kaedah set untuk menyimpan data dalam Memcached dan gunakan kaedah get untuk mendapatkan data daripada Memcached. 🎜🎜4. Gunakan Ehcache untuk melaksanakan cache teragih🎜🎜Ehcache ialah rangka kerja cache teragih Java sumber terbuka yang boleh digunakan untuk menyimpan data dalam memori. Berikut ialah contoh kod yang menggunakan Ehcache untuk melaksanakan caching teragih: 🎜rrreee🎜Melalui kod di atas, kita dapat melihat bahawa kita perlu mencipta objek CacheManager dan mencipta objek cache. Kemudian, gunakan kaedah set untuk menyimpan data dalam cache dan gunakan kaedah get untuk mendapatkan data daripada cache. 🎜🎜Ringkasan: 🎜🎜Artikel ini memperkenalkan cara melaksanakan caching teragih dalam pembangunan back-end Java. Kami memperkenalkan cara menggunakan Redis, Memcached dan Ehcache untuk melaksanakan cache yang diedarkan masing-masing dan menyediakan kod sampel yang sepadan. Dalam aplikasi praktikal, memilih teknologi cache teragih yang sesuai berdasarkan keperluan khusus dan seni bina sistem boleh meningkatkan prestasi dan kebolehskalaan sistem dengan ketara. 🎜

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan caching teragih dalam pembangunan fungsi backend Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn