Rumah > Java > javaTutorial > Bagaimana untuk menggunakan teknologi caching untuk mengurangkan capaian pangkalan data dan meningkatkan kelajuan capaian tapak web Java?

Bagaimana untuk menggunakan teknologi caching untuk mengurangkan capaian pangkalan data dan meningkatkan kelajuan capaian tapak web Java?

PHPz
Lepaskan: 2023-08-05 14:40:48
asal
1374 orang telah melayarinya

Bagaimana untuk menggunakan teknologi caching untuk mengurangkan akses pangkalan data dan meningkatkan kelajuan capaian tapak web Java?

Abstrak: Apabila membangunkan dan mengoptimumkan tapak web Java, penggunaan teknologi caching yang rasional boleh mengurangkan akses kepada pangkalan data dan meningkatkan kelajuan akses laman web dengan berkesan. Artikel ini akan memperkenalkan cara menggunakan teknologi caching dalam tapak web Java dan memberikan contoh kod yang sepadan.

1. Konsep asas caching
Cache adalah untuk menyimpan data yang kerap dibaca dalam ingatan untuk akses pantas pada masa akan datang. Membaca data daripada cache adalah lebih pantas daripada mengakses pangkalan data secara langsung. Di Jawa, teknologi caching yang biasa digunakan termasuk caching tempatan dan caching yang diedarkan.

2. Penggunaan cache tempatan
Cache tempatan menyimpan data dalam memori aplikasi, dan aplikasi boleh terus membaca dan menulis ke cache. Rangka kerja caching tempatan yang biasa digunakan termasuk Guava Cache dan Ehcache.

  1. Contoh Cache Jambu Batu:
import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;

public class GuavaCacheExample {
    private static Cache<String, Object> cache;

    public static void main(String[] args) {
        cache = CacheBuilder.newBuilder()
                .maximumSize(100) // 最大缓存数
                .build();

        String key = "key";
        Object value = getValueFromDatabase(key); // 从数据库中读取数据

        cache.put(key, value); // 将数据放入缓存

        Object cachedValue = cache.getIfPresent(key); // 从缓存中获取数据

        System.out.println(cachedValue);
    }

    private static Object getValueFromDatabase(String key) {
        // 从数据库中读取数据的逻辑
        return "value";
    }
}
Salin selepas log masuk
  1. Contoh Ehcache:
import net.sf.ehcache.Cache;
import net.sf.ehcache.CacheManager;
import net.sf.ehcache.Element;

public class EhcacheExample {
    private static Cache cache;

    public static void main(String[] args) {
        CacheManager cacheManager = CacheManager.create();

        cache = new Cache("myCache", 1000, false, false, 30, 30);
        cacheManager.addCache(cache);

        String key = "key";
        Object value = getValueFromDatabase(key); // 从数据库中读取数据

        Element element = new Element(key, value); // 创建缓存元素
        cache.put(element); // 将数据放入缓存

        Element cachedElement = cache.get(key); // 从缓存中获取数据
        Object cachedValue = cachedElement.getObjectValue();

        System.out.println(cachedValue);
    }

    private static Object getValueFromDatabase(String key) {
        // 从数据库中读取数据的逻辑
        return "value";
    }
}
Salin selepas log masuk

3. Penggunaan cache teragih
Cache teragih menyimpan data dalam memori berbilang pelayan, dan berbilang aplikasi boleh berkongsi data. Rangka kerja cache teragih yang biasa digunakan termasuk Redis dan Memcached.

  1. Redis contoh:
import redis.clients.jedis.Jedis;

public class RedisExample {
    private static Jedis jedis;

    public static void main(String[] args) {
        jedis = new Jedis("localhost"); // 连接Redis服务器
        jedis.set("key", "value"); // 将数据存入缓存
        String value = jedis.get("key"); // 从缓存中获取数据
        System.out.println(value);
    }
}
Salin selepas log masuk
  1. Contoh Memcached:
import net.spy.memcached.MemcachedClient;

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

public class MemcachedExample {
    private static MemcachedClient memcachedClient;

    public static void main(String[] args) {
        try {
            memcachedClient = new MemcachedClient(new InetSocketAddress("localhost", 11211)); // 连接Memcached服务器
            memcachedClient.set("key", 0, "value"); // 将数据存入缓存
            Object value = memcachedClient.get("key"); // 从缓存中获取数据
            System.out.println(value);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
Salin selepas log masuk

4. Gunakan teknologi caching untuk mengurangkan bilangan capaian pangkalan data
Dalam pembangunan sebenar, teknologi caching boleh digunakan untuk mengurangkan bilangan capaian pangkalan data berikut cara:

  1. Cache data hotspot: Cache kerap membaca data dan mendapatkan data daripada cache dan bukannya mengakses pangkalan data setiap kali.
  2. Set keputusan cache: Cache hasil pertanyaan dan dapatkannya terus daripada cache lain kali anda memerlukan set hasil yang sama dan bukannya menanya semula pangkalan data.
  3. Hasil pengiraan cache: Cache hasil pengiraan yang kompleks dan dapatkannya terus daripada cache pada kali seterusnya anda perlu mengira hasil yang sama.

Contoh kod:

import com.google.common.cache.Cache;
import com.google.common.cache.CacheBuilder;

public class CacheUsageExample {
    private static Cache<String, Object> cache;

    static {
        cache = CacheBuilder.newBuilder()
                .maximumSize(100) // 最大缓存数
                .build();
    }

    public static void main(String[] args) {
        String key = "key";
        Object value = cache.getIfPresent(key); // 从缓存中获取数据

        if (value == null) {
            value = getValueFromDatabase(key); // 从数据库中读取数据
            cache.put(key, value); // 将数据放入缓存
        }

        System.out.println(value);
    }

    private static Object getValueFromDatabase(String key) {
        // 从数据库中读取数据的逻辑
        return "value";
    }
}
Salin selepas log masuk

Ringkasnya, penggunaan teknologi caching yang munasabah boleh mengurangkan akses kepada pangkalan data dan meningkatkan kelajuan akses tapak web Java dengan berkesan. Artikel ini memperkenalkan penggunaan cache tempatan dan cache yang diedarkan, dan memberikan contoh kod yang sepadan. Dalam pembangunan sebenar, secara rasional memilih penyelesaian caching berdasarkan keperluan khusus dan melaksanakan pengoptimuman berkaitan boleh meningkatkan prestasi tapak web dan pengalaman pengguna dengan lebih baik.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan teknologi caching untuk mengurangkan capaian pangkalan data dan meningkatkan kelajuan capaian tapak web Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan