Subversion Repositories SmartDukaan

Rev

Rev 29854 | Rev 30208 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 29854 Rev 30206
Line 1... Line 1...
1
package com.spice.profitmandi.dao.config;
1
package com.spice.profitmandi.dao.config;
2
 
2
 
3
import java.util.concurrent.TimeUnit;
-
 
4
 
-
 
5
import org.springframework.cache.CacheManager;
3
import org.springframework.cache.CacheManager;
6
import org.springframework.cache.annotation.CachingConfigurerSupport;
4
import org.springframework.cache.annotation.CachingConfigurerSupport;
7
import org.springframework.cache.annotation.EnableCaching;
5
import org.springframework.cache.annotation.EnableCaching;
8
import org.springframework.cache.caffeine.CaffeineCacheManager;
-
 
9
import org.springframework.context.annotation.Bean;
6
import org.springframework.context.annotation.Bean;
10
import org.springframework.context.annotation.Configuration;
7
import org.springframework.context.annotation.Configuration;
-
 
8
import org.springframework.data.redis.cache.RedisCacheConfiguration;
-
 
9
import org.springframework.data.redis.cache.RedisCacheManager;
-
 
10
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
-
 
11
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
-
 
12
import org.springframework.data.redis.serializer.RedisSerializationContext;
11
 
13
 
12
import com.github.benmanes.caffeine.cache.Caffeine;
14
import java.time.Duration;
13
 
15
 
14
@Configuration
16
@Configuration
15
@EnableCaching
17
@EnableCaching
16
public class CacheConfig extends CachingConfigurerSupport {
18
public class CacheConfig extends CachingConfigurerSupport {
17
 
19
 
18
	@Override
20
	@Bean
-
 
21
	JedisConnectionFactory jedisConnectionFactory() {
-
 
22
		return new JedisConnectionFactory();
-
 
23
	}
-
 
24
 
-
 
25
	@Bean
-
 
26
	public RedisCacheConfiguration cacheConfiguration() {
-
 
27
		return RedisCacheConfiguration.defaultCacheConfig()
-
 
28
				.entryTtl(Duration.ofMinutes(120))
-
 
29
				.disableCachingNullValues()
-
 
30
				.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer()));
-
 
31
	}
-
 
32
 
19
	@Bean
33
	@Bean
20
	public CacheManager cacheManager() {
34
	public CacheManager cacheManager() {
21
		CaffeineCacheManager cacheManager = new CaffeineCacheManager();
35
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
-
 
36
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofMinutes(5)))
22
		return cacheManager;
37
				.build();
23
	}
38
	}
24
 
39
 
-
 
40
 
25
	@Bean
41
	@Bean
26
	public CacheManager timeoutCacheManager() {
42
	public CacheManager timeoutCacheManager() {
27
		CaffeineCacheManager cacheManager = new CaffeineCacheManager();
43
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
28
		Caffeine<Object, Object> caffeine = Caffeine.newBuilder().expireAfterWrite(5, TimeUnit.MINUTES);
44
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofMinutes(5)))
29
		cacheManager.setCaffeine(caffeine);
-
 
30
		return cacheManager;
45
				.build();
31
	}
46
	}
32
	
47
 
33
	@Bean
48
	@Bean
34
	public CacheManager timeout15CacheManager() {
49
	public CacheManager timeout15CacheManager() {
35
		CaffeineCacheManager cacheManager = new CaffeineCacheManager();
50
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
36
		Caffeine<Object, Object> caffeine = Caffeine.newBuilder().expireAfterWrite(15, TimeUnit.MINUTES);
51
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofMinutes(15)))
37
		cacheManager.setCaffeine(caffeine);
-
 
38
		return cacheManager;
52
				.build();
39
	}
53
	}
40
 
54
 
41
	@Bean
55
	@Bean
42
	public CacheManager oneDayCacheManager() {
56
	public CacheManager oneDayCacheManager() {
43
		CaffeineCacheManager cacheManager = new CaffeineCacheManager();
57
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
44
		Caffeine<Object, Object> caffeine = Caffeine.newBuilder().expireAfterWrite(6, TimeUnit.HOURS);
58
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofHours(8)))
45
		cacheManager.setCaffeine(caffeine);
-
 
46
		return cacheManager;
59
				.build();
47
	}
60
	}
48
	
61
 
49
 
62
 
50
	@Bean
63
	@Bean
51
	public CacheManager twoMintimeoutCacheManager() {
64
	public CacheManager twoMintimeoutCacheManager() {
52
		CaffeineCacheManager cacheManager = new CaffeineCacheManager();
65
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
53
		Caffeine<Object, Object> caffeine = Caffeine.newBuilder().expireAfterWrite(2, TimeUnit.MINUTES);
66
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofMinutes(2)))
54
		cacheManager.setCaffeine(caffeine);
-
 
55
		return cacheManager;
67
				.build();
56
	}
68
	}
57
 
69
 
58
	@Bean
70
	@Bean
59
	public CacheManager thirtyMinsTimeOutCacheManager() {
71
	public CacheManager thirtyMinsTimeOutCacheManager() {
60
		CaffeineCacheManager cacheManager = new CaffeineCacheManager();
72
		return RedisCacheManager.RedisCacheManagerBuilder.fromConnectionFactory(jedisConnectionFactory())
61
		Caffeine<Object, Object> caffeine = Caffeine.newBuilder().expireAfterWrite(30, TimeUnit.MINUTES);
73
				.cacheDefaults(cacheConfiguration().entryTtl(Duration.ofMinutes(30)))
62
		cacheManager.setCaffeine(caffeine);
-
 
63
		return cacheManager;
74
				.build();
64
	}
75
	}
65
 
76
 
66
}
77
}
67
78