redis implementiert Daten-Caching. Im Allgemeinen werden einige Wörterbuchdaten, Sitzungsdaten und temporäre Daten in Redis gespeichert Thread-Sicherheit, und jede Implementierung eines Threads verschwendet zu viele Ressourcen. Es ist sehr gefährlich, die Anzahl der Threads nicht kontrollieren zu können. Daher sind einige Redis-Thread-Pool-Komponenten erschienen.
jedis Thread-Pool bedeutet hauptsächlich, dass jede Instanz über einen eigenen Thread verfügt und der Thread aus dem von ihr eingerichteten Pool abgerufen werden kann
Salat Salat ist ein von Apache und seinen Redis gestartetes Thread-Pool-Tool Der gemeinsame Zugriff durch mehrere Threads verbessert die Ressourcennutzung Größe und gut lesbar und erfordert keine Implementierung der Serializer-Schnittstelle.
/** * 对redis的配置. */ @Configuration public class RedisConfig { @Autowired private RedisConnectionFactory redisConnectionFactory; /** * redis重写RedisTemplate. */ @Bean public RedisTemplate redisTemplate() { RedisTemplate redisTemplate = new RedisTemplate(); RedisSerializer<String> stringSerializer = new StringRedisSerializer(); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); //序列化时允许非常量字段均输出类型,即redis序列化后带有类型 om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); // redis key的序列化 redisTemplate.setKeySerializer(stringSerializer); redisTemplate.setHashKeySerializer(stringSerializer); // redis value的序列化 redisTemplate.setValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer); redisTemplate.setConnectionFactory(redisConnectionFactory); return redisTemplate; } }
[ "com.lind.basic.entity.Token", { "credentials": "ok", "region": "hello", "bucket": null } ]
Sehen Sie sich den hinzugefügten und gelesenen Code an.
@GetMapping("set") public String set() throws JsonProcessingException { Token token = Token.builder() .credentials("ok") .region("hello") .build(); redisTemplate.opsForValue().set("test:user", token);//redisTemplate帮我们序列化 redisTemplate.opsForHash().put("author", "zzl", token); return "OK"; } @GetMapping("get") public Token get() throws IOException { return (Token) redisTemplate.opsForValue().get("test:user"); }
Hinweis: Für die Entitätsklasse Token sollte es einen Konstruktor ohne Argumente geben, der für die Deserialisierung benötigt wird.
Das obige ist der detaillierte Inhalt vonSo verwenden Sie Redis in Springboot richtig. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!