springboot2.5.0和redis整合配置詳解
基本概況
為什麼使用緩存
緩存是在內存中存儲的數據備份,當數據沒有發生本質變化時
就可以直接從內存中查詢數據,而不用去數據庫查詢(在磁盤中)
CPU讀取內存的速度要比讀取磁盤快,可以提高效率
Redis緩存
Remote Dictionnary Server(遠程數據服務),是一款內存高速緩存數據庫。
五種常用數據類型: String(字符串)、List(列表)、Set(集合)、Hash(散列)、ZSet(有序集合)
可持久化:一邊運行,一邊向硬盤備份一份,防止斷電等偶然情況,導致內存中數據丟失
下載Redis
鏈接: https://pan.baidu.com/s/1BMt4cIxjKTtyL3T0_iSC2w 提取碼: rkne
1. pom添加依賴
<!--redis--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
2. application.properties 配置文件
#===========Redis配置=========== # Redis數據庫索引(默認為0) spring.redis.database=0 # Redis服務器地址 spring.redis.host=127.0.0.1 # Redis服務器連接端口 spring.redis.port=6379 # Redis服務器連接密碼 spring.redis.password=root # 連接池最大連接數(使用負值表示沒有限制) spring.redis.pool.max-active=200 # 連接池最大阻塞等待時間(使用負值表示沒有限制) spring.redis.pool.max-wait=-1 # 連接池中的最大空閑連接 spring.redis.pool.max-idle=10 # 連接池中的最小空閑連接 spring.redis.pool.min-idle=0 # 連接超時時間(毫秒) spring.redis.timeout=2000ms spring.redis.jedis.pool.max-wait=-1ms #===========Redis配置===========
3. RedisConfig.java 配置類
package org.fh.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.jsontype.impl.LaissezFaireSubTypeValidator; import com.fasterxml.jackson.annotation.PropertyAccessor; import com.fasterxml.jackson.annotation.JsonAutoDetect; /** * 說明:Redis * from:www.fhadmin.org */ @Configuration public class RedisConfig { @Bean @SuppressWarnings("all") public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) { RedisTemplate<String, Object> template = new RedisTemplate<String, Object>(); template.setConnectionFactory(factory); Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); ObjectMapper om = new ObjectMapper(); om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance , ObjectMapper.DefaultTyping.NON_FINAL); jackson2JsonRedisSerializer.setObjectMapper(om); StringRedisSerializer stringRedisSerializer = new StringRedisSerializer(); // key采用String的序列化方式 template.setKeySerializer(stringRedisSerializer); // hash的key也采用String的序列化方式 template.setHashKeySerializer(stringRedisSerializer); // value序列化方式采用jackson template.setValueSerializer(jackson2JsonRedisSerializer); // hash的value序列化方式采用jackson template.setHashValueSerializer(jackson2JsonRedisSerializer); template.afterPropertiesSet(); return template; } }
4. 調用redis
@Autowired private RedisTemplate<String, Object> redisTemplate; /** * 普通緩存獲取 * @param key 鍵 * @return 值 */ public Object get(String key) { return key == null ? null : redisTemplate.opsForValue().get(key); } /** * 普通緩存放入 * @param key 鍵 * @param value 值 * @return true成功 false失敗 */ public boolean set(String key, Object value) { try { redisTemplate.opsForValue().set(key, value); return true; } catch (Exception e) { //e.printStackTrace(); return false; } }
以上就是springboot2.5.0 整合 redis 配置詳解的詳細內容,更多關於springboot2.5.0 整合 redis 的資料請關註WalkonNet其它相關文章!
推薦閱讀:
- 解決SpringBoot下Redis序列化亂碼的問題
- 使用註解實現Redis緩存功能
- SpringBoot結合Redis實現序列化的方法詳解
- 使用@Autowired 註入RedisTemplate報錯的問題及解決
- SpringBoot整合Redis及Redis工具類撰寫實例