Spring boot 配置多个redis的方法示例

时间:2021-05-20

Spring Data提供其他项目,用来帮你使用各种各样的NoSQL技术,包括MongoDB, Neo4J, Elasticsearch, Solr, Redis,Gemfire, Couchbase和Cassandra。Spring Boot为Redis, MongoDB, Elasticsearch, Solr和Gemfire提供自动配置。你可以充分利用其他项目,但你需要自己配置它们。

单个 RedisTemplate 的配置

使用 spring-boot-starter-data-redis 配置一个 redis 是很简单的。

pom.xml 中该引入的依赖是要引入的,下面的是完整的 pom.xml

<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</version></dependency><dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId></dependency>

这样运行可以看到 redis 中变成这样了:

127.0.0.1:6379> get PERSON"[\"me.deweixu.mutiredis.entity.People\",{\"name\":\"Deweixu\",\"age\":26}]"127.0.0.1:6379>

配置另外一个 redisTemplate

@Bean RedisTemplate<String, Object> secondRedisTemplate() { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); om.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(om); redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer); redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer); // 这里的 redis 信息也是可以写入配置文件,用 @Value 读入 // 这里是单机的配置,看看源代码还可以配置集群和哨兵模式 RedisStandaloneConfiguration configuration = new RedisStandaloneConfiguration("localhost", 6379); JedisConnectionFactory factory = new JedisConnectionFactory(configuration); redisTemplate.setConnectionFactory(factory); return redisTemplate; }

注入 secondRedisTemplate 即可

@Autowired RedisTemplate<String, Object> firstRedisTemplate; @Autowired RedisTemplate<String, Object> secondRedisTemplate; @Override public void run(String... args) throws Exception { BoundValueOperations<String, Object> op = firstRedisTemplate.boundValueOps("PERSON"); People people = new People(); people.setAge(26); people.setName("Deweixu"); op.set(people); BoundValueOperations<String, Object> secondOp = secondRedisTemplate.boundValueOps("PERSON"); People getPeople = (People) secondOp.get(); System.out.println(getPeople.getName() + "," + getPeople.getAge()); }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章