我使用Spring Redis的工作spring-data-redis
与所有默认配置喜欢localhost
默认port
等.
现在我尝试通过在application.properties
文件中配置它来进行相同的配置.但我无法弄清楚我应该如何创建完全符合我的属性值的bean.
Redis配置文件
@EnableRedisHttpSession @Configuration public class SpringSessionRedisConfiguration { @Bean JedisConnectionFactory connectionFactory() { return new JedisConnectionFactory(); } @Autowired @Bean RedisCacheManager redisCacheManager(final StringRedisTemplate stringRedisTemplate) { return new RedisCacheManager(stringRedisTemplate); } @Autowired @Bean StringRedisTemplate template(final RedisConnectionFactory connectionFactory) { return new StringRedisTemplate(connectionFactory); } }
application.properties中的标准参数
spring.redis.sentinel.master =大师
spring.redis.sentinel.nodes = 192.168.188.231:26379
spring.redis.password = 12345
我试过的,
我可以使用@PropertySource
然后注入@Value
并获取值.但是我不想这样做,因为这些属性不是由我定义的,而是来自Spring.
在本文档Spring Redis文档中,它只表示可以使用属性进行配置,但不显示具体示例.
我还经历了Spring Data Redis API类,并发现RedisProperties
应该对我有所帮助,但仍然无法弄清楚究竟如何告诉Spring从属性文件中读取.
misterion.. 28
您可以使用@PropertySource
从application.properties或所需的其他属性文件中读取选项.请查看PropertySource用法示例和使用spring-redis-cache的工作示例.或者看看这个小样本:
@Configuration @PropertySource("application.properties") public class SpringSessionRedisConfiguration { @Value("${redis.hostname}") private String redisHostName; @Value("${redis.port}") private int redisPort; @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { return new PropertySourcesPlaceholderConfigurer(); } @Bean JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setHostName(redisHostName); factory.setPort(redisPort); factory.setUsePool(true); return factory; } @Bean RedisTemplate
目前(2015年12月),spring.redis.sentinel选项对以下application.properties
内容的支持有限RedisSentinelConfiguration
:
请注意,目前只有Jedis和生菜生菜支持Redis Sentinel.
您可以在官方文档中阅读更多相关信息.
您可以使用@PropertySource
从application.properties或所需的其他属性文件中读取选项.请查看PropertySource用法示例和使用spring-redis-cache的工作示例.或者看看这个小样本:
@Configuration @PropertySource("application.properties") public class SpringSessionRedisConfiguration { @Value("${redis.hostname}") private String redisHostName; @Value("${redis.port}") private int redisPort; @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { return new PropertySourcesPlaceholderConfigurer(); } @Bean JedisConnectionFactory jedisConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setHostName(redisHostName); factory.setPort(redisPort); factory.setUsePool(true); return factory; } @Bean RedisTemplateredisTemplate() { RedisTemplate redisTemplate = new RedisTemplate (); redisTemplate.setConnectionFactory(jedisConnectionFactory()); return redisTemplate; } @Bean RedisCacheManager cacheManager() { RedisCacheManager redisCacheManager = new RedisCacheManager(redisTemplate()); return redisCacheManager; } }
目前(2015年12月),spring.redis.sentinel选项对以下application.properties
内容的支持有限RedisSentinelConfiguration
:
请注意,目前只有Jedis和生菜生菜支持Redis Sentinel.
您可以在官方文档中阅读更多相关信息.
看得更深,我发现了这个,这可能是你想要的吗?
# REDIS (RedisProperties) spring.redis.database=0 # Database index used by the connection factory. spring.redis.host=localhost # Redis server host. spring.redis.password= # Login password of the redis server. spring.redis.pool.max-active=8 # Max number of connections that can be allocated by the pool at a given time. Use a negative value for no limit. spring.redis.pool.max-idle=8 # Max number of "idle" connections in the pool. Use a negative value to indicate an unlimited number of idle connections. spring.redis.pool.max-wait=-1 # Maximum amount of time (in milliseconds) a connection allocation should block before throwing an exception when the pool is exhausted. Use a negative value to block indefinitely. spring.redis.pool.min-idle=0 # Target for the minimum number of idle connections to maintain in the pool. This setting only has an effect if it is positive. spring.redis.port=6379 # Redis server port. spring.redis.sentinel.master= # Name of Redis server. spring.redis.sentinel.nodes= # Comma-separated list of host:port pairs. spring.redis.timeout=0 # Connection timeout in milliseconds.
参考:https: //docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html Searchterm Redis
从我可以看到的值已经存在并被定义为
spring.redis.host=localhost # Redis server host. spring.redis.port=6379 # Redis server port.
如果你想创建自己的属性,你可以在这个帖子中查看我以前的帖子.