Spring Boot fournit une configuration automatique pour Redis, MongoDB, Elasticsearch, Solr et Gemfire. Cet article présente en détail la configuration de plusieurs connexions Redis dans Springboot. Ceux qui sont intéressés peuvent en savoir plus.
1. Springboot nosql Introduction
Spring Data fournit d'autres projets pour vous aider à utiliser diverses technologies NoSQL, notamment MongoDB, Neo4J, Elasticsearch, Solr, Redis, Gemfire, Couchbase et Cassandra. Spring Boot fournit une configuration automatique pour Redis, MongoDB, Elasticsearch, Solr et Gemfire. Vous pouvez profiter pleinement d’autres projets, mais vous devez les configurer vous-même.
1.1, Redis
Redis est un cache, un middleware de messages et un système de stockage clé-valeur doté de fonctionnalités riches. Spring Boot fournit une configuration automatique pour la bibliothèque client Jedis et les abstractions basées sur le client Jedis fournies par Spring Data Redis. spring-boot-starter-redis 'Starter POM' fournit un moyen pratique de collecter les dépendances.
Redis ajoute une dépendance maven
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <!-- <version>1.3.5.RELEASE</version> --> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-commons --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <!-- <version>1.3.6.RELEASE</version> --> </dependency>
1.2 Connect Redis
Vous pouvez injecter une RedisConnectionFactory, StringRedisTemplate ou la même chose que les autres instances Spring Beans RedisTemplate configurées automatiquement. Par défaut, cette instance tentera de se connecter au serveur Redis à l'aide de localhost:6379.
@Component public class MyBean { private StringRedisTemplate template; @Autowired public MyBean(StringRedisTemplate template) { this.template = template; } // ... }
Si vous ajoutez votre propre @Bean de n'importe quel type configuré automatiquement, il remplacera celui par défaut (sauf dans le cas de RedisTemplate, qui est basé sur le nom du bean 'redisTemplate ' plutôt que son type exclu). Si commons-pool2 existe dans le chemin de classe, vous obtiendrez une fabrique de pool de connexions par défaut.
1.3 Établir plusieurs connexions Redis
En utilisant la configuration par défaut de Redis, vous pouvez vous connecter à la bibliothèque 0 dans Redis. Si vous spécifiez une connexion à la bibliothèque, vous devez configurer indexdb en même temps, si vous devez connecter plusieurs services Redis, vous devez également configurer plusieurs sources de données en même temps
1.3.1 Ajoutez ce qui suit au fichier application.yml. fichier :
@Component public class MyBean { private StringRedisTemplate template; @Autowired public MyBean(StringRedisTemplate template) { this.template = template; } // ... }
1.3.2. Créer une configuration redis
@Configuration public class Redis137_11Configuration { @Bean(name = "redis123Template") public StringRedisTemplate redisTemplate( @Value("${redis123.hostName}") String hostName, @Value("${redis123.port}") int port, @Value("${redis123.password}") String password, @Value("${redis123.maxIdle}") int maxIdle, @Value("${redis123.maxTotal}") int maxTotal, @Value("${redis123.index}") int index, @Value("${redis123.maxWaitMillis}") long maxWaitMillis, @Value("${redis123.testOnBorrow}") boolean testOnBorrow) { StringRedisTemplate temple = new StringRedisTemplate(); temple.setConnectionFactory(connectionFactory(hostName, port, password, maxIdle, maxTotal, index, maxWaitMillis, testOnBorrow)); return temple; } public RedisConnectionFactory connectionFactory(String hostName, int port, String password, int maxIdle, int maxTotal, int index, long maxWaitMillis, boolean testOnBorrow) { JedisConnectionFactory jedis = new JedisConnectionFactory(); jedis.setHostName(hostName); jedis.setPort(port); if (!StringUtils.isEmpty(password)) { jedis.setPassword(password); } if (index != 0) { jedis.setDatabase(index); } jedis.setPoolConfig(poolCofig(maxIdle, maxTotal, maxWaitMillis, testOnBorrow)); // 初始化连接pool jedis.afterPropertiesSet(); RedisConnectionFactory factory = jedis; return factory; } public JedisPoolConfig poolCofig(int maxIdle, int maxTotal, long maxWaitMillis, boolean testOnBorrow) { JedisPoolConfig poolCofig = new JedisPoolConfig(); poolCofig.setMaxIdle(maxIdle); poolCofig.setMaxTotal(maxTotal); poolCofig.setMaxWaitMillis(maxWaitMillis); poolCofig.setTestOnBorrow(testOnBorrow); return poolCofig; } }
1.3.3 Déclarez la classe de base abstraite redis et créez des méthodes d'opération redis
public abstract class AbRedisConfiguration { protected StringRedisTemplate temple; public void setData(String key, String value) { getTemple().opsForValue().set(key, value); } public String getData(String key) { return getTemple().opsForValue().get(key); } public StringRedisTemplate getTemple() { return temple; } }
. 1.3.4. Créer différentes sous-classes @Component
selon la source de donnéespublic class Redis123 extends AbRedisConfiguration { @Resource(name = "redis123Template") private StringRedisTemplate temple; public StringRedisTemplate getTemple() { return temple; } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!