当前位置:首页 > Java

java如何设置缓存

2026-03-26 08:08:34Java

设置缓存的方法

在Java中设置缓存可以通过多种方式实现,包括使用内置的缓存机制、第三方库或框架。以下是几种常见的方法:

使用ConcurrentHashMap实现简单缓存

ConcurrentHashMap是线程安全的,适合作为简单的缓存实现。

import java.util.concurrent.ConcurrentHashMap;

public class SimpleCache<K, V> {
    private final ConcurrentHashMap<K, V> cache = new ConcurrentHashMap<>();

    public void put(K key, V value) {
        cache.put(key, value);
    }

    public V get(K key) {
        return cache.get(key);
    }

    public void remove(K key) {
        cache.remove(key);
    }
}

使用Caffeine高性能缓存库

Caffeine是一个高性能的Java缓存库,支持多种缓存策略。

import com.github.benmanes.caffeine.cache.Cache;
import com.github.benmanes.caffeine.cache.Caffeine;

public class CaffeineCacheExample {
    public static void main(String[] args) {
        Cache<String, String> cache = Caffeine.newBuilder()
                .maximumSize(100)
                .build();

        cache.put("key", "value");
        String value = cache.getIfPresent("key");
        System.out.println(value);
    }
}

使用Ehcache缓存框架

Ehcache是一个成熟的Java缓存框架,支持分布式缓存。

import org.ehcache.Cache;
import org.ehcache.CacheManager;
import org.ehcache.config.builders.CacheConfigurationBuilder;
import org.ehcache.config.builders.CacheManagerBuilder;
import org.ehcache.config.builders.ResourcePoolsBuilder;

public class EhcacheExample {
    public static void main(String[] args) {
        CacheManager cacheManager = CacheManagerBuilder.newCacheManagerBuilder()
                .withCache("preConfigured",
                        CacheConfigurationBuilder.newCacheConfigurationBuilder(
                                String.class, String.class,
                                ResourcePoolsBuilder.heap(10)))
                .build();
        cacheManager.init();

        Cache<String, String> cache = cacheManager.getCache("preConfigured", String.class, String.class);
        cache.put("key", "value");
        String value = cache.get("key");
        System.out.println(value);

        cacheManager.close();
    }
}

使用Guava Cache

Guava Cache是Google提供的缓存库,功能丰富且易于使用。

import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;

public class GuavaCacheExample {
    public static void main(String[] args) {
        LoadingCache<String, String> cache = CacheBuilder.newBuilder()
                .maximumSize(100)
                .build(new CacheLoader<String, String>() {
                    @Override
                    public String load(String key) throws Exception {
                        return "default";
                    }
                });

        cache.put("key", "value");
        String value = cache.get("key");
        System.out.println(value);
    }
}

使用Spring Cache注解

在Spring框架中,可以通过注解轻松实现缓存功能。

java如何设置缓存

import org.springframework.cache.annotation.Cacheable;
import org.springframework.stereotype.Service;

@Service
public class BookService {
    @Cacheable("books")
    public String getBook(String isbn) {
        return "Book Details for " + isbn;
    }
}

缓存策略选择

  • 内存缓存:适用于单机应用,如ConcurrentHashMapCaffeineGuava Cache
  • 分布式缓存:适用于集群环境,如EhcacheRedis
  • 框架集成:Spring项目推荐使用Spring Cache注解。

根据应用场景选择合适的缓存实现,确保性能和可维护性。

分享给朋友:

相关文章

如何缓存react组件

如何缓存react组件

缓存React组件的方法 React.memo 使用React.memo对函数组件进行浅比较缓存,避免不必要的重新渲染。适用于props不变的场景。 const MemoizedComponen…

react如何设置input

react如何设置input

设置 React 中的 Input 元素 在 React 中设置 input 元素可以通过多种方式实现,包括受控组件、非受控组件以及使用第三方库。以下是几种常见的方法: 受控组件方式 受控组件通过…

vue实现组件缓存

vue实现组件缓存

Vue 组件缓存的实现方法 在 Vue 中实现组件缓存通常使用 <keep-alive> 内置组件,它可以缓存不活动的组件实例,避免重复渲染和销毁。 基本用法 <keep-aliv…

vue回退实现缓存

vue回退实现缓存

Vue 回退实现缓存的方法 在Vue应用中,实现回退时保持页面缓存可以通过<keep-alive>组件和路由配置结合实现。以下是具体方法: 使用 <keep-alive> 缓…

vue实现页面跳转缓存

vue实现页面跳转缓存

Vue 实现页面跳转缓存的方法 在 Vue 中实现页面跳转缓存通常需要使用 keep-alive 组件结合路由配置。以下是几种常见的实现方式: 使用 keep-alive 包裹 router-vie…

react如何设置路由

react如何设置路由

在React中设置路由通常使用react-router-dom库,以下是具体实现方法: 安装react-router-dom 通过npm或yarn安装最新版本的react-router-dom:…