Spring Boot系列筆記--整合Redis
基本環境搭建
- 匯入依賴
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>
- 配置檔案配置Redis主機地址,埠預設
6379
spring.redis.host=127.0.0.1
RedisTemplate
@Autowired
StringRedisTemplate stringRedisTemplate;
@Autowired
RedisTemplate redisTemplate;
- 兩者都是操作Redis資料庫,區別如下:
- 兩者的關係是
StringRedisTemplate
繼承於RedisTemplate
RedisTemplate
使用的是JdkSerializationRedisSerializer
,存入資料會將資料先序列化成位元組陣列然後在存入Redis資料庫;StringRedisTemplate
使用的是StringRedisSerializer
StringRedisTemplate
操作的K-V是字串型別,RedisTemplate
操作的K-V是物件型別
- 兩者的關係是
- RedisTemplate類中提供了Redis常見的五種資料型別
stringRedisTemplate.opsForValue()[String(字串)] stringRedisTemplate.opsForList()[List(列表)] stringRedisTemplate.opsForSet()[Set(集合)] stringRedisTemplate.opsForHash()[Hash(雜湊)] stringRedisTemplate.opsForZSet()[ZSet(有序集合)]
- 如果操作的是物件,則要考慮序列化與反序列化的問題,可參考
RedisAutoConfiguration.class
改變預設的序列化規則,Redis支援以下的序列化器
自定義序列化器
這樣物件就儲存為@Configuration public class MyRedisConfig { @Bean public RedisTemplate<Object, Employee> empRedisTemplate(RedisConnectionFactory redisConnectionFactory) throws UnknownHostException { RedisTemplate<Object, Employee> template = new RedisTemplate(); template.setConnectionFactory(redisConnectionFactory); //使用Jackson2JsonRedisSerializer完成物件序列化與json之間的轉換 Jackson2JsonRedisSerializer<Employee> serializer = new Jackson2JsonRedisSerializer<>(Employee.class); template.setDefaultSerializer(serializer); return template; } }
JSON
格式
CacheManager
- 原理:
CacheManager
管理Cache
元件,Cache
元件實際運算元據- 引入redis的starter,容器中儲存的是
RedisCacheManager
- RedisCacheManager 幫我們建立 RedisCache 來作為快取元件;RedisCache通過操作redis快取資料的
- 預設建立的RedisCacheManager操作redis的時候使用的是
RedisTemplate<Object, Object>
,預設使用JDK的序列化機制
- 引入redis的starter,容器中儲存的是
- 自定義CacheManager,儲存物件為
JSON
格式@Bean RedisCacheManager cacheManager( RedisConnectionFactory redisConnectionFactory) { // 使用快取的預設配置 RedisCacheConfiguration config = RedisCacheConfiguration.defaultCacheConfig(); // 使用 GenericJackson2JsonRedisSerializer 作為序列化器 config = config.serializeValuesWith(RedisSerializationContext.SerializationPair.fromSerializer(new GenericJackson2JsonRedisSerializer())); RedisCacheManager.RedisCacheManagerBuilder builder = RedisCacheManager.builder(redisConnectionFactory).cacheDefaults(config); return builder.build(); }
相關文章
- Spring Boot整合RedisSpring BootRedis
- Spring Boot 整合redisSpring BootRedis
- spring boot(三)整合 redisSpring BootRedis
- Spring-Boot整合RedisSpringbootRedis
- Spring Boot 專案整合RedisSpring BootRedis
- spring-boot-starter-redis 整合SpringbootRedis
- spring-boot快速入門學習筆記-整合JPA mybatis rabbitmq mongodb redisSpringboot筆記MyBatisMQMongoDBRedis
- Spring Boot系列十九 Spring boot整合 swaggerSpring BootSwagger
- Spring Boot整合Redis實戰操作Spring BootRedis
- Spring Boot 如何快速整合 Redis 哨兵?Spring BootRedis
- Spring Boot系列(三):Spring Boot整合Mybatis原始碼解析Spring BootMyBatis原始碼
- Spring Boot整合Redis叢集(Cluster模式)Spring BootRedis模式
- spring boot 筆記Spring Boot筆記
- Spring Boot 整合 Redis 實現快取操作Spring BootRedis快取
- spring boot AOP筆記Spring Boot筆記
- Spring Boot學習筆記:Spring Boot核心配置Spring Boot筆記
- 【Redis系列】Spring boot實現監聽Redis key失效事件RedisSpring Boot事件
- Spring Boot系列十七 Spring Boot 整合 websocket,使用RabbitMQ做為訊息代理Spring BootWebMQ
- Spring security(四)-spring boot +spring security簡訊認證+redis整合Spring BootRedis
- 從零開始學Spring Boot系列-整合MySQLSpring BootMySql
- 從零開始學Spring Boot系列-整合mybatisSpring BootMyBatis
- 從零開始學Spring Boot系列-整合KafkaSpring BootKafka
- Spring Boot(十三):整合Redis哨兵,叢集模式實踐Spring BootRedis模式
- spring boot使用Jedis整合Redis實現快取(AOP)Spring BootRedis快取
- spring-boot-route(十二)整合redis做為快取SpringbootRedis快取
- Spring Boot系列十六 WebSocket簡介和spring boot整合簡單訊息代理Spring BootWeb
- Spring Boot 2.0(八):Spring Boot 整合 MemcachedSpring Boot
- Spring Boot(十八):使用 Spring Boot 整合 FastDFSSpring BootAST
- Spring筆記(四)整合MybatisSpring筆記MyBatis
- Spring Boot整合rabbitmqSpring BootMQ
- Spring Boot 整合 rabbitmqSpring BootMQ
- Spring Boot 整合 elasticsearchSpring BootElasticsearch
- Spring Boot 整合 dockerSpring BootDocker
- Spring Boot 整合 elkSpring Boot
- Spring Boot 整合 ApolloSpring Boot
- Spring Boot 整合 MyBatisSpring BootMyBatis
- Spring Boot整合SocketSpring Boot
- spring boot整合jooqSpring Boot