Maison > Article > base de données > Comment faire fonctionner Redis dans SpringBoot
Option 1 : Projet de création Spring Data Redis
Créez le projet et introduisez les dépendances Redis :
Après une création réussie, vous devez introduire manuellement les dépendances de commos-pool2, donc le pom.xml final complet les dépendances sont les suivantes :
<dependencies> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-data-redis</artifactid> </dependency> <dependency> <groupid>org.springframework.boot</groupid> <artifactid>spring-boot-starter-web</artifactid> </dependency> </dependencies> <dependency> <groupid>org.apache.commons</groupid> <artifactid>commons-pool2</artifactid> </dependency>
L'essentiel ici est l'introduction du pool de connexion Spring Data Redis +.
Configurer les informations Redis
Ensuite, configurez les informations Redis. Les informations comprennent deux aspects, l'un est les informations de base de Redis et l'autre est les informations du pool de connexions :
spring.redis.database=0 spring.redis.password=123 spring.redis.port=6379 spring.redis.host=192.168.66.128 spring.redis.lettuce.pool.min-idle=5 spring.redis.lettuce.pool.max-idle=10 spring.redis.lettuce.pool.max-active=8 spring.redis.lettuce.pool.max-wait=1ms spring.redis.lettuce.shutdown-timeout=100ms
Configuration automatique
Quand un développeur. Après avoir introduit Spring Data Redis dans le projet et configuré les informations de base de Redis, la configuration automatisée prendra effet.
Nous pouvons voir les indices de la classe de configuration automatisée de Redis dans Spring Boot :
@Configuration @ConditionalOnClass(RedisOperations.class) @EnableConfigurationProperties(RedisProperties.class) @Import({ LettuceConnectionConfiguration.class, JedisConnectionConfiguration.class }) public class RedisAutoConfiguration { @Bean @ConditionalOnMissingBean(name = "redisTemplate") public RedisTemplate<object> redisTemplate( RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { RedisTemplate<object> template = new RedisTemplate(); template.setConnectionFactory(redisConnectionFactory); return template; } @Bean @ConditionalOnMissingBean public StringRedisTemplate stringRedisTemplate( RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { StringRedisTemplate template = new StringRedisTemplate(); template.setConnectionFactory(redisConnectionFactory); return template; } }</object></object>
Cette classe de configuration automatisée est facile à comprendre :
Marquez d'abord cela comme une classe de configuration, et en même temps, cette configuration existe dans RedisOperations Cela ne prendra effet que la prochaine fois (c'est-à-dire que Spring Data Redis est introduit dans le projet)
Puis importez les propriétés configurées dans application.properties
Puis importez les informations du pool de connexions (si elles existent )
Enfin, provide Il existe deux Beans, RedisTemplate et StringRedisTemplate est une sous-classe de RedisTemplate. Les méthodes des deux sont fondamentalement les mêmes. La différence se reflète principalement dans les différents types d'opérations de données. dans RedisTemplate sont tous deux Object, ce qui signifie stockage. La clé et la valeur peuvent être un objet, et les deux génériques de StringRedisTemplate sont String, ce qui signifie que la clé et la valeur de StringRedisTemplate ne peuvent être que des chaînes. Ces deux configurations ne prendront effet que si le développeur ne fournit pas les beans associés. Si le Bean correspondant est fourni, il ne prendra pas effet.
En utilisant
Ensuite, vous pouvez directement injecter StringRedisTemplate ou RedisTemplate dans le service à utiliser :
@Service public class HelloService { @Autowired RedisTemplate redisTemplate; public void hello() { ValueOperations ops = redisTemplate.opsForValue(); ops.set("k1", "v1"); Object k1 = ops.get("k1"); System.out.println(k1); } }
Les opérations sur les données dans Redis peuvent être grossièrement divisées en deux types :
pour l'opération clé, les méthodes pertinentes sont dans RedisTemplate
Pour les opérations sur des types de données spécifiques, les méthodes pertinentes doivent d'abord obtenir le type de données correspondant. La méthode d'opération pour obtenir le type de données correspondant est opsForXXX
Appelez cette méthode pour Les données sont stockées dans. Redis, comme suit :
k1 Les caractères précédents sont provoqués par l'utilisation de RedisTemplate, qui est le résultat de la sérialisation de la clé.
Dans RedisTemplate, le schéma de sérialisation par défaut pour la clé est JdkSerializationRedisSerializer.
Dans StringRedisTemplate, le schéma de sérialisation par défaut pour la clé est StringRedisSerializer. Par conséquent, si vous utilisez StringRedisTemplate, il n'y aura pas de préfixe devant la clé par défaut.
Cependant, les développeurs peuvent également modifier eux-mêmes le schéma de sérialisation dans RedisTemplate, comme suit :
@Service public class HelloService { @Autowired RedisTemplate redisTemplate; public void hello() { redisTemplate.setKeySerializer(new StringRedisSerializer()); ValueOperations ops = redisTemplate.opsForValue(); ops.set("k1", "v1"); Object k1 = ops.get("k1"); System.out.println(k1); } }
Bien sûr, vous pouvez également utiliser directement StringRedisTemplate :
@Service public class HelloService { @Autowired StringRedisTemplate stringRedisTemplate; public void hello2() { ValueOperations ops = stringRedisTemplate.opsForValue(); ops.set("k2", "v2"); Object k1 = ops.get("k2"); System.out.println(k1); } }
De plus, il convient de noter que la configuration automatisée de Spring Boot ne peut configurer que Redis autonome. Pour le cluster Redis, tout doit être configuré manuellement par vous-même. Concernant le fonctionnement du cluster Redis, Brother Song le partagera avec vous plus tard.
Option 2 : Spring Cache
Utiliser Spring Cache pour faire fonctionner Redis unifie le monde du cache. Cette solution a été présentée par Brother Song dans un article spécial auparavant. Le cache Redis peut toujours être utilisé de cette manière ! .
Option 3 : Retour à l'ère d'origine
La troisième option consiste à utiliser directement Jedis ou d'autres outils clients pour faire fonctionner Redis. Cette option est également prise en charge dans Spring Boot. Bien que l'opération soit gênante, elle est prise en charge
.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!