2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Perlege modum generaliter refert ad consilium caching, in quo cum applicationis notitias legere tentat, primum systema cella deprimitur videre an iam in cella data sit. Si notitia in cella (i.e. hit) notitia ex cella legatur et ad applicationem redierit. Si notitia in cella non est (i.e., cella miss), notitia e notitia copia substrata (ut datorum datorum), deinde in cella onusta, et tandem ad applicationem rediit.
Praecipua commoditates huius exemplaris sunt:
Perlege modo consuevit cum strategies opponi ut Piger Loading et Studiosus Loading:
Cum exsequendo perlege modo, sequentia considerare velis:
Exsequens Read Per exemplum in Ver Booz plerumque perfici potest per abstractionem fontis Cache. Ver Cache una API trans varias exsecutiones cache praebet et plures solutiones cache sustinet, ut EhCache, Hazelcast, Infinispan, Redis, etc.
Dependentias adde: Primum, debes clientelas fontis Boot addere et selectas bibliothecas cache exsequendas (ut Redis)
- <!-- Spring Boot Starter Cache -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-cache</artifactId>
- </dependency>
-
- <!-- 以Redis为例,添加Redis的Spring Boot Starter -->
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-data-redis</artifactId>
- </dependency>
Admitte cache annotationes: Adde de configuratione genus Tabernus Spring@EnableCaching
annotationem ad enable annotationem cache auxilio.
Configurare cache procurator: Configurare velCacheManager
, Ver Boot sponte configurare simplicemCacheManager
, sed magis implicatas stragulas machinas, si opus fuerit, configurare potes.
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.data.redis.cache.RedisCacheConfiguration;
- import org.springframework.data.redis.cache.RedisCacheManager;
- import org.springframework.data.redis.connection.RedisConnectionFactory;
-
- @Configuration
- public class RedisCacheConfig {
-
- @Bean
- public RedisCacheManager cacheManager(RedisConnectionFactory connectionFactory) {
- RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig()
- .serializeKeysWith(RedisSerializationContext.SerializationPair.fromSerializer(RedisSerializer.string()))
- .serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(GenericJackson2JsonRedisSerializer.json())))
-
- Map<String, RedisCacheConfiguration> customCacheConfigs = new HashMap<>();
- customCacheConfigs.put("mySpecialCache",
- config.entryTtl(Duration.ofMinutes(15))); // 为特定缓存设置不同的过期时间
-
- .disableCachingNullValues();
- return RedisCacheManager.builder(connectionFactory)
- .cacheDefaults(config)
- // 在这里可以自定义添加缓存配置
- .withInitialCacheConfigurations(customCacheConfigs)
- .build();
- }
- }
@Cacheable
Annotationes ad efficiendum perlege modum. Si nulla notitia in cella est, modus vocabitur et eventus conditivo erit.- import org.springframework.cache.annotation.Cacheable;
- import org.springframework.stereotype.Service;
-
- @Service
- public class MyService {
-
- @Cacheable(value = "myCache", key = "#id")
- public MyData getDataById(String id) {
- // 从数据库加载数据
- return myDataRepository.findById(id);
- }
- }
Clavis Cache: exist@Cacheable
Clavis latibulum in annotatione specificata est, quae plerumque ex moduli methodi valore nititur.
nomen cache: Specificare nomen cache, quod ad varias ditiones cache distinguendas adhibebitur.
Configurare parametri cache: Configurare potes cache timeout, conditiones, nisi conditiones, prout opus fuerit etc
valorem vel cacheNames : Nomen cache specificare. Unum vel plura nomina cache nominare potes quae ad thesaurum thesaurum adhibebuntur.
@Cacheable(value = "myCacheName", key = "#id")
clavis : Definire generationem militaris pro clavis valoribus cache. Locutiones spEL (Versus elocutionis lingua) solent uti modum parametri specificare sicut claves cache.
@Cacheable(cacheNames = "myCache", key = "#id")
conditio: Definire condiciones caching, et cache tantum cum condiciones convenirent.
@Cacheable(cacheNames = "myCache", key = "#id", condition = "#id.length() > 3")
nisi: Definire conditiones non caching, andcondition
Sed ponitur certis adiunctis excluditur.
@Cacheable(cacheNames = "myCache", key = "#id", unless = "#result == null")
keyGenerator: Cache clavem generationis designare consuetudinem belliKeyGenerator
Faba nomen.
@Cacheable(cacheNames = "myCache", keyGenerator = "myKeyGenerator")
cacheManager: Specificare quod unum ad usumCacheManager
si plures suntCacheManager
quo usus est.
@Cacheable(cacheNames = "myCache", cacheManager = "myCacheManager")
expireAfterWrite : Expitionis tempus pone (in milliseconds) post cella scriptum est. Haec communis figura adhibetur ad vitam conditarum notitiarum definiendam.
@Cacheable(cacheNames = "myCache", key = "#id", expireAfterWrite = 3600000) // 1小时后过期
expireAfterAccessPone tempus respirandi post ultimum accessum cellae item, quod applicatur ad quam diu sumitur pro notitia conditivo post novissimum accessum exspirandi.
refreshafterWrite: Pone quam diu perscriptum est ad recreandum cella, ad missiones idoneas ubi cella alacriter reficitur.
syncPone an synchrone creare res cachexia ad praecavendas condiciones generis in ambitus concurrentes.
Exceptio pertractatio: Fac ut exceptiones tractandas quae in cache modos obici possunt ad stabilitatem applicationis ad vitandum.