ssm中redis缓存如何配置
其他 36
-
在SSM(Spring+SpringMVC+MyBatis)框架中使用Redis缓存,需要进行以下配置:
- 添加Redis依赖:在项目的pom.xml文件中添加Redis的依赖。可以使用以下依赖配置:
<!-- Redis依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>- 配置Redis连接信息:在Spring的配置文件(例如application.properties或application.yml)中配置Redis的连接信息。示例如下:
spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=- 配置RedisTemplate:在Spring的配置文件中配置RedisTemplate,用于操作Redis数据。示例如下:
@Configuration public class RedisConfig { @Bean public RedisTemplate<String, Object> redisTemplate(LettuceConnectionFactory connectionFactory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(connectionFactory); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); template.setHashKeySerializer(new StringRedisSerializer()); template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); return template; } }- 注入RedisTemplate:在需要使用Redis缓存的类中,通过注解@Autowired注入RedisTemplate。示例如下:
@Service public class UserServiceImpl implements UserService { @Autowired private RedisTemplate<String, Object> redisTemplate; //... }- 使用Redis缓存:在需要使用Redis缓存的方法上,使用注解@Cacheable、@CachePut或@CacheEvict等注解进行缓存操作。示例如下:
@Service public class UserServiceImpl implements UserService { @Autowired private RedisTemplate<String, Object> redisTemplate; @Cacheable(value = "userCache", key = "#id") public User getUserById(int id) { // 先从缓存中获取用户信息 User user = (User) redisTemplate.opsForValue().get("user:" + id); // 如果缓存中不存在,则从数据库中获取,并存入缓存 if (user == null) { user = userDao.getUserById(id); redisTemplate.opsForValue().set("user:" + id, user); } return user; } }以上就是在SSM中配置Redis缓存的基本步骤。通过配置Redis连接信息、RedisTemplate,以及使用相应的注解,可以方便地在SSM项目中使用Redis进行数据缓存。
1年前 -
在SSM(Spring+Spring MVC+MyBatis)中使用Redis作为缓存,需要进行以下配置:
- 引入Redis依赖:在Maven的pom.xml文件中添加以下Redis依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>- 配置Redis连接信息:在Spring的配置文件(如applicationContext.xml)中添加以下Redis连接信息:
<bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"> <property name="hostName" value="localhost" /> <property name="port" value="6379" /> <property name="password" value="password" /> <property name="database" value="0" /> </bean>可以根据实际情况修改
hostName、port、password和database的值。- 配置RedisTemplate:在Spring的配置文件中添加以下配置,用于操作Redis:
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> <property name="connectionFactory" ref="jedisConnectionFactory" /> <property name="keySerializer" ref="stringRedisSerializer" /> <property name="hashKeySerializer" ref="stringRedisSerializer" /> <property name="valueSerializer" ref="jdkSerializationRedisSerializer" /> <property name="hashValueSerializer" ref="jdkSerializationRedisSerializer" /> </bean> <bean id="stringRedisSerializer" class="org.springframework.data.redis.serializer.StringRedisSerializer" /> <bean id="jdkSerializationRedisSerializer" class="org.springframework.data.redis.serializer.JdkSerializationRedisSerializer" />keySerializer和hashKeySerializer用于指定键的序列化方式,valueSerializer和hashValueSerializer用于指定值的序列化方式。- 配置缓存注解:在SSM的配置文件(如applicationContext.xml)中开启Redis缓存注解:
<bean class="org.springframework.cache.annotation.AnnotationCacheOperationSource"> <qualifier value="cacheOperationSource" /> </bean> <bean id="cacheManager" class="org.springframework.data.redis.cache.RedisCacheManager"> <constructor-arg ref="redisTemplate" /> <property name="defaultExpiration" value="0" /> <property name="cacheNames"> <set> <value>cacheName</value> </set> </property> </bean> <cache:annotation-driven cache-manager="cacheManager" />其中,
cacheNames用于指定缓存的名称,可以根据需要进行修改。- 使用缓存注解:在需要缓存的方法上添加相应的注解,例如:
@Cacheable(value = "cacheName", key = "#id") public User getUserById(int id) { return userDao.getUserById(id); }使用
@Cacheable注解可以将方法的返回值缓存到Redis中,value指定缓存的名称,key指定缓存的键。当下次请求相同的键时,将会从缓存中获取数据,而不是执行方法。通过以上配置,就可以在SSM中使用Redis作为缓存了。可以根据实际需求进行调整和扩展。
1年前 -
在SSM(Spring+Spring MVC+MyBatis)框架中,可以通过配置Redis缓存来提高系统的性能和响应速度。下面是配置SSM中Redis缓存的方法和操作流程:
- 引入相关依赖:首先,在项目的pom.xml文件中添加Redis相关的依赖。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency>- 配置Redis连接信息:在项目的配置文件(如application.properties或application.yml)中配置Redis的连接信息。
spring.redis.host=127.0.0.1 spring.redis.port=6379 spring.redis.password=123456- 创建Redis配置类:在项目中创建一个Redis的配置类,用来配置Redis的连接工厂和Redis模板。
@Configuration @EnableCaching public class RedisConfig extends CachingConfigurerSupport { @Bean public RedisConnectionFactory redisConnectionFactory() { JedisConnectionFactory factory = new JedisConnectionFactory(); factory.setHostName("127.0.0.1"); factory.setPort(6379); factory.setPassword("123456"); return factory; } @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> template = new RedisTemplate<>(); template.setConnectionFactory(redisConnectionFactory); template.setKeySerializer(new StringRedisSerializer()); template.setValueSerializer(new GenericJackson2JsonRedisSerializer()); return template; } @Override @Bean public CacheManager cacheManager() { RedisCacheManager cacheManager = RedisCacheManager.create(redisConnectionFactory()); return cacheManager; } }- 使用Redis缓存:在需要使用缓存的方法上添加@Cacheable注解,并指定缓存的名称。
@Service public class UserServiceImpl implements UserService { @Autowired private UserDao userDao; @Override @Cacheable(value = "user", key = "#id") public User getUserById(int id) { return userDao.getUserById(id); } @Override @CachePut(value = "user", key = "#user.id") public User addUser(User user) { userDao.addUser(user); return user; } @Override @CacheEvict(value = "user", key = "#id") public void deleteUserById(int id) { userDao.deleteUserById(id); } }- 测试Redis缓存:为了验证Redis缓存是否配置成功,可以编写一个测试类来测试。
@RunWith(SpringRunner.class) @SpringBootTest public class UserServiceTest { @Autowired private UserService userService; @Test public void testGetUserById() { int id = 1; User user1 = userService.getUserById(id); User user2 = userService.getUserById(id); Assert.assertEquals(user1, user2); } @Test public void testAddUser() { User user = new User(); user.setId(2); user.setName("Alice"); userService.addUser(user); User newUser = userService.getUserById(2); Assert.assertEquals(user, newUser); } @Test public void testDeleteUserById() { int id = 2; userService.deleteUserById(id); Assert.assertNull(userService.getUserById(id)); } }以上就是在SSM中配置Redis缓存的方法和操作流程。通过配置Redis缓存,可以在一定程度上提高系统的性能和响应速度。同时,通过使用Spring缓存注解,可以方便地管理和使用缓存。需要注意的是,Redis的配置信息要根据实际情况进行修改,确保正确连接到Redis服务器。
1年前