Spring Boot bietet ein Komponentenpaket für die Redis-Integration: Spring-Boot-Starter-Data-Redis, das von Spring-Data-Redis und Salat abhängt.
Darüber hinaus gibt es hier zwei kleine Details:
In der Spring Boot 1.x-Ära verwendete die unterste Schicht von Spring-Data-Redis Jedis, in der 2.x-Ära wurde sie durch Lettuce ersetzt. „Lettuce hängt von Commons-Pool2 ab.“
<!-- springboot整合redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <!-- 使用 lettuce 时要加这个包;使用 jedis 时则不需要。--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> </dependency>
Aber offensichtlich steht dies im Widerspruch zur tatsächlichen Situation von Redis: Auf der Ebene der kleinsten Speichereinheit kann Redis im Wesentlichen nur Zeichenfolgen und keine anderen Typen speichern. Aus dieser Sicht entspricht StringRedisTemplate eher der Speichernatur von Redis. Wie unterstützt RedisTemplate jeden Typ durch Serialisierung von Werten? "Hello Redis"
## Redis 服务器地址 spring.redis.host=localhost ## Redis 服务器连接端口 spring.redis.port=6379 ## Redis 数据库索引(默认为 0) spring.redis.database=0 ## 以下非必须,有默认值 ## Redis 服务器连接密码(默认为空) spring.redis.password= ## 连接池最大连接数(使用负值表示没有限制)默认 8 spring.redis.lettuce.pool.max-active=8 ## 连接池最大阻塞等待时间(使用负值表示没有限制)默认 -1 spring.redis.lettuce.pool.max-wait=-1 ## 连接池中的最大空闲连接 默认 8 spring.redis.lett uce.pool.max-idle=8 ## 连接池中的最小空闲连接 默认 0 spring.redis.lettuce.pool.min-idle=0
//解决中文乱码问题 @Configuration public class RedisConfig { @Bean public RedisTemplate redisTemplateInit(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String,Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); //设置序列化Key的实例化对象 redisTemplate.setKeySerializer(new StringRedisSerializer()); //设置序列化Value的实例化对象 redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); /** * * 设置Hash类型存储时,对象序列化报错解决 */ redisTemplate.setHashKeySerializer(new StringRedisSerializer()); redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); return redisTemplate; } }
Schlüssel mit automatischem Ablauf. Redis kann beim Speichern aller Daten eine Zeitüberschreitung festlegen, und die Daten werden nach dieser Zeit automatisch gelöscht. Häufig verwendete Redis-Zeiteinheiten | Normales Wann Wenn wir einen Schlüssel speichern, ist es natürlich, get/set zum Speichern zu verwenden. Tatsächlich ist dies keine gute Vorgehensweise. Redis verfügt über einen Mindestspeicher zum Speichern eines Schlüssels, er wird nicht kleiner sein als dieser Speicher. Daher kann uns eine vernünftige Verwendung von Hash dabei helfen, viel Speicher zu sparen. |
---|---|
7. SpringBoot betreibt den Listensammlungstyp | Redis List hat viele Anwendungsszenarien und ist auch eine der wichtigsten Datenstrukturen von Redis. Sie können eine Warteschlange einfach mit List implementieren. Ein typisches Anwendungsszenario von List ist die Push-Operation von List, um Aufgaben in List zu speichern, und dann verwendet der Worker-Thread die POP-Operation, um die Aufgabe zur Ausführung herauszunehmen. |
8. SpringBoot betreibt den Set-Sammlungstyp | Die von Redis Set bereitgestellten externen Funktionen sind eine Listenfunktion, die jedoch automatisch dedupliziert werden kann not want to Set ist eine gute Wahl, wenn doppelte Daten auftreten, und Set bietet eine wichtige Schnittstelle zum Bestimmen, ob sich ein Mitglied in einer Set-Sammlung befindet, die List nicht bereitstellen kann. |
Redis. Das Verwendungsszenario von ZSet ähnelt dem von Set. Der Unterschied besteht darin, dass Set nicht automatisch sortiert wird, während ZSet Mitglieder durch Bereitstellung eines zusätzlichen Prioritätsparameters (Score) sortieren kann . Und es ist Einfügereihenfolge, also automatische Sortierung. |