Maison  >  Article  >  base de données  >  Comment faire fonctionner Redis dans SpringBoot

Comment faire fonctionner Redis dans SpringBoot

PHPz
PHPzavant
2023-05-26 12:25:141758parcourir

Option 1 : Projet de création Spring Data Redis

Créez le projet et introduisez les dépendances Redis :

Comment faire fonctionner Redis dans SpringBoot

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 :

  1. 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)

  2. Puis importez les propriétés configurées dans application.properties

  3. Puis importez les informations du pool de connexions (si elles existent )

  4. 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 :

  1. pour l'opération clé, les méthodes pertinentes sont dans RedisTemplate

  2. 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 :

Comment faire fonctionner Redis dans SpringBoot

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer