之前有写过一篇Spring Cache注解+Redis
今天对Cache+Redis配置的优化。
首页还是Jar的依赖,请看之前的文章,这里不做赘述。
然后后XML的配置:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:cache="http://www.springframework.org/schema/cache" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache.xsd" default-autowire="byName"> <context:property-placeholder location="classpath*:config/redis.properties" ignore-unresolvable="true"/> <!-- 启用缓存注解功能 --> <cache:annotation-driven cache-manager="cacheManager"/> <!--Redis Cache 配置--> <bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager"> <constructor-arg name="redisOperations" ref="redisTemplate"/> </bean> <!-- redis 相关配置 --> <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="${redis.maxIdle}"/> <property name="maxWaitMillis" value="${redis.maxWait}"/> <property name="testOnBorrow" value="${redis.testOnBorrow}"/> </bean> <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="poolConfig" ref="poolConfig"/> <property name="port" value="${redis.port}"/> <property name="hostName" value="${redis.host}"/> <property name="timeout" value="${redis.timeout}"/> <property name="password" value="${redis.pwd}"/> <property name="database" value="${redis.database}"/> </bean> <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory"/> <!--<property name="defaultSerializer" ref="stringRedisSerializer"/>--> <property name="keySerializer" ref="stringRedisSerializer"/> <!--<property name="valueSerializer" ref="stringRedisSerializer"/>--> <property name="hashKeySerializer" ref="stringRedisSerializer"/> <!--<property name="hashValueSerializer" ref="stringRedisSerializer"/>--> </bean> <bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer"/> </beans>
redis.properties请看上一篇文章;
缓存注解使用:
在service实现方法上加注解
@Override @Cacheable(value = "ShardingTableCache", key = "'shardingTableName:' + #appId + ':' + #appUserId") public Integer getShardingTableName(String appId, String appUserId) { return mapper.getShardingTableName(appId, appUserId); } @Override @CacheEvict(value = "ShardingTableCache", key = "'shardingTableName:' + #appId + ':' + #appUserId") public int updateShardingTable(String appId, String appUserId, int shardingTable) { return mapper.updateShardingTable(appId, appUserId, shardingTable); }
使用redis客户端RedisDesktopManager查看效果如下图:
中间遇到的问题: 插入的hash类型的key前面会有一堆的\xac\xed\x00\x05t\x00\tb 这种东西
处理方法:redisTemplate中添加<property name="keySerializer" ref="stringRedisSerializer"/>等
相关推荐
在缓存管理方面,Spring 提供了 Spring Cache抽象层,可以方便地集成各种缓存实现,如Ehcache、Hazelcast或Redis。 **Ehcache** 是一个广泛使用的Java缓存库,适合在内存中存储数据。它提供了一种快速访问最近使用...
在IT行业中,构建高效、可扩展的Web应用是至关重要的,而Spring框架、MyBatis持久层框架以及Redis缓存系统的结合使用,是实现这一目标的常见方式。本教程主要针对初学者,介绍如何将这三者整合,实现数据缓存功能,...
在这个项目中,"springcache+redis"的整合意味着我们要利用Spring Cache的特性,将缓存存储在Redis中,以提升应用的性能。 首先,Spring Cache提供了`@Cacheable`、`@CacheEvict`和`@Caching`等注解,允许我们在...
此外,还需要掌握如何将Spring Cache与Redis整合,以便在应用中高效使用缓存机制。 一、Redis的主从配置 1. 准备工作: - 操作系统要求:Ubuntu 16.04。 - Redis版本:选择适合的稳定版本,例如redis-4.0.9.tar....
### SpringCache+Redis实现高可用缓存解决方案 #### 前言 在现代软件开发中,缓存技术是提升系统性能的重要手段之一。Spring Boot框架自带的`ConcurrentMapCacheManager`虽然简单易用,但对于分布式环境下的应用来...
结合Spring Cache抽象,还可以实现自动化的缓存管理,进一步提升系统的响应速度。 在"frameworks-master"这个项目中,我们可以期待看到以下内容: 1. 应用的主配置文件,如`application.properties`或`application...
- **缓存管理**:在业务逻辑中,使用`@Cacheable`、`@CacheEvict`等Spring Cache注解,声明式地控制哪些方法的结果应被缓存,何时需要清除缓存。 5. **redisdemo.sql**: 这个文件很可能是MySQL数据库的初始化脚本...
项目可能包含使用Spring的RedisTemplate或Jedis客户端库来操作Redis,包括设置、获取、过期策略等操作,并且可以结合Spring的Cache Abstraction进行缓存管理。 Spring MVC作为Spring的一部分,是用于构建Web应用的...
本项目利用Spring Boot、MyBatis Plus、Redis以及Spring Cache来构建一个高效的缓存系统。下面将详细阐述这些技术及其整合使用的知识点。 **1. Spring Boot** Spring Boot是Spring框架的简化版,它提供了快速开发...
"Spring Boot+Spring Cache实现两级缓存(Redis+Caffeine)" 知识点一:缓存与两级缓存 缓存是将数据从读取较慢的介质上读取出来放到读取较快的介质上,如磁盘-->内存。平时我们会将数据存储到磁盘上,如:数据库。...
本篇文章主要介绍了详解配置Spring4.0注解Cache+Redis缓存的用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
SpringCache与Redis集成,优雅的缓存解决方案 SpringCache是一种基于Java的缓存解决方案,它可以与Redis集成,提供了一种优雅的缓存解决方案。在本文中,我们将对SpringCache与Redis集成的优雅缓存解决方案进行详细...
1. **MybatisPlus整合Redis**:在需要缓存的查询方法上添加`@Cacheable`注解,通过Spring Cache抽象层,将结果存储到Redis中。下次请求相同数据时,直接从缓存获取,提高响应速度。 2. **RedisTemplate与...
在本项目中,"springboot+redis+springcache测试项目"是基于Spring Boot框架构建的,目的是演示如何集成Redis缓存以及Spring Cache来优化数据库访问性能。MyBatis作为持久层框架,负责与MySQL数据库进行交互。以下是...
综上所述,"redis-cluster和spring集成,基于cache注解" 的项目是一个使用 Spring Cache 集成 Redis 集群的实例,旨在通过注解的方式简化缓存管理,提高应用性能。开发者可以通过导入提供的项目,快速了解和实践这一...
标题中的“springcache-redis”指的是Spring Cache与Redis的整合应用,它是在Spring框架中使用Redis作为缓存机制的一种方式。Spring Cache是Spring框架的一部分,它提供了一种抽象的缓存层,可以用来缓存方法的执行...
Spring Cache模块可以结合Redis实现缓存功能。通过注解`@Cacheable`、`@CacheEvict`和`@Caching`,可以很容易地在方法级别启用缓存,提高性能。 ```java @Cacheable(value = "myCache", key = "#id") public ...
<bean id="cacheManager" class="org.springframework.cache.redis.RedisCacheManager"> <bean class="org.springframework.data.redis.cache.RedisCacheConfiguration"> <!-- 可选配置:缓存默认设置 --> <!...
3. 集成Redis:设置Redis客户端,实现缓存策略,比如使用Spring Cache注解简化缓存操作。 4. 实现SSO:配置Spring Security,创建统一的登录界面和验证中心,处理跨域问题,确保安全的会话管理。 5. 单元测试与集成...
在本篇文档中,我们将探讨如何使用Spring Cache来缓存数据,并结合Fastjson配置Redis序列化,确保数据正确存储和读取。 首先,我们需要在`pom.xml`中添加必要的依赖。Spring Boot的`spring-boot-starter-cache`模块...