package com.flexpoker.config; import org.springframework.cache.CacheManager; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.cache.RedisCacheManager; import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.core.StringRedisTemplate; import com.flexpoker.game.query.dto.GameInListDTO; import com.flexpoker.table.command.framework.TableEvent; @Configuration public class RedisConfig { @Bean JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setHostName("localhost"); factory.setPort(6379); factory.setUsePool(true); return factory; } @Bean StringRedisTemplate redisTemplate() { StringRedisTemplate redisTemplate = new StringRedisTemplate(); redisTemplate.setConnectionFactory(jedisConnectionFactory()); return redisTemplate; } @Bean RedisTemplate<String, GameInListDTO> redisTemplateGameInList() { RedisTemplate<String, GameInListDTO> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(jedisConnectionFactory()); return redisTemplate; } @Bean RedisTemplate<String, TableEvent> redisTemplateTableEvent() { RedisTemplate<String, TableEvent> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(jedisConnectionFactory()); return redisTemplate; } @Bean CacheManager cacheManager() { return new RedisCacheManager(redisTemplate()); } }