Maven obligatoire méthode de configuration issons fig
Redisson's Config (stand- configuration de la version seule)<!--redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> <exclusions> <exclusion> <groupId>io.lettuce</groupId> <artifactId>lettuce-core</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> <!-- 多台相同应用(负载均),Session共享 --> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.17.5</version> </dependency>
spring: redis: host: 106.12.174.220 port: 6379 password: 123456 #没有密码就保留空 timeout: 5000 jedis: pool: max-active: 1000 # 池在给定时间可以分配的最大连接数。使用负值表示无限制。 max-idle: 50 #池中“空闲”连接的最大数量。使用负值表示空闲连接的数量不受限制 min-idle: 10 # 目标是池中要维护的最小空闲连接数。此设置只有在它和逐出运行之间的时间均为正值时才有效。 max-wait: -1 # 在池耗尽时引发异常之前,连接分配应阻止的最长时间。使用负值无限期阻塞。 redisson: tokenName: Authorization # 用于分布式锁的唯一标识,一般使用token如果没有找到,就找sessionId session: store-type: redis #设置session保存为默认redis的方式 ,可以解决分布式session不一致问题
import org.springframework.context.annotation.Configuration; import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession; @Configuration //设置session的默认在redis中的存活时间 @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 7200) //Session过期时间,2小时,默认1800秒(半小时) -1 永不过期 public class SessionConfig {}
import org.springframework.session.web.context.AbstractHttpSessionApplicationInitializer; //初始化Session配置 public class SessionInitializer extends AbstractHttpSessionApplicationInitializer { public SessionInitializer() { super(SessionConfig.class); } }
Supposons qu'il y ait 5 nœuds Redis. Il n'y a ni relation maître-esclave ni cluster entre ces nœuds. Le client utilise la même clé et la même valeur aléatoire pour demander des verrous sur 5 nœuds. Le délai d'attente pour la demande de verrous doit être inférieur au temps de déverrouillage automatique. Lorsque le verrou est demandé sur 3 redis (plus de la moitié), le verrou est véritablement acquis. Si le verrou n'est pas obtenu, certains des redis verrouillés seront libérés.
import org.redisson.Redisson; import org.redisson.api.RedissonClient; import org.redisson.config.Config; import org.redisson.config.SingleServerConfig; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class RedissonConfig { @Value("${spring.redis.host}") private String host; @Value("${spring.redis.port}") private String port; @Value("${spring.redis.password}") private String password; @Bean public RedissonClient getRedisson() { Config config = new Config(); SingleServerConfig singleServerConfig = config.useSingleServer(); singleServerConfig.setAddress("redis://" + host + ":" + port).setPassword(password); return Redisson.create(config); } }
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!