diff --git a/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/service/RedisService.java b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/service/RedisService.java new file mode 100644 index 0000000..aa92e38 --- /dev/null +++ b/gym-manage-api/gym-groupCourse/src/main/java/cn/novalon/gym/manage/groupcourse/service/RedisService.java @@ -0,0 +1,76 @@ +package cn.novalon.gym.manage.groupcourse.service; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * @author:liwentao + * @date:2026/5/15-05-15-16:05 + */ +@Service +public class RedisService { + + @Autowired + private RedisTemplate redisTemplate; + + // 设置值 + public void set(String key, Object value) { + redisTemplate.opsForValue().set(key, value); + } + + // 设置值并指定过期时间(秒) + public void setWithExpire(String key, Object value, long timeout) { + redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS); + } + + // 获取值 + public Object get(String key) { + return redisTemplate.opsForValue().get(key); + } + + // 删除key + public Boolean delete(String key) { + return redisTemplate.delete(key); + } + + // 判断key是否存在 + public Boolean hasKey(String key) { + return redisTemplate.hasKey(key); + } + + // 设置过期时间 + public Boolean expire(String key, long timeout) { + return redisTemplate.expire(key, timeout, TimeUnit.SECONDS); + } + + // Hash操作 + public void putHash(String key, String hashKey, Object value) { + redisTemplate.opsForHash().put(key, hashKey, value); + } + + public Object getHash(String key, String hashKey) { + return redisTemplate.opsForHash().get(key, hashKey); + } + + // List操作 + public void leftPush(String key, Object value) { + redisTemplate.opsForList().leftPush(key, value); + } + + public Object rightPop(String key) { + return redisTemplate.opsForList().rightPop(key); + } + + // Set操作 + public void addToSet(String key, Object... values) { + redisTemplate.opsForSet().add(key, values); + } + + public Set getSet(String key) { + return redisTemplate.opsForSet().members(key); + } +} diff --git a/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/config/RedisConfig.java b/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/config/RedisConfig.java new file mode 100644 index 0000000..12d804e --- /dev/null +++ b/gym-manage-api/manage-app/src/main/java/cn/novalon/gym/manage/app/config/RedisConfig.java @@ -0,0 +1,43 @@ +package cn.novalon.gym.manage.app.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +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.GenericJackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +/** + * @author:liwentao + * @date:2026/5/15-05-15-16:01 + */ +@Configuration +public class RedisConfig { + + @Bean + public RedisTemplate redisTemplate(RedisConnectionFactory factory) { + RedisTemplate template = new RedisTemplate<>(); + template.setConnectionFactory(factory); + + // 创建ObjectMapper并配置 + ObjectMapper om = new ObjectMapper(); + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + om.activateDefaultTyping(om.getPolymorphicTypeValidator(), ObjectMapper.DefaultTyping.NON_FINAL); + + // 使用GenericJackson2JsonRedisSerializer替代已弃用的方式 + GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer(om); + + // 使用StringRedisSerializer来序列化和反序列化redis的key值 + StringRedisSerializer stringSerializer = new StringRedisSerializer(); + template.setKeySerializer(stringSerializer); + template.setValueSerializer(genericJackson2JsonRedisSerializer); + template.setHashKeySerializer(stringSerializer); + template.setHashValueSerializer(genericJackson2JsonRedisSerializer); + + template.afterPropertiesSet(); + return template; + } +} \ No newline at end of file diff --git a/gym-manage-api/manage-app/src/main/resources/application.yml b/gym-manage-api/manage-app/src/main/resources/application.yml index 294cdeb..824ca7b 100644 --- a/gym-manage-api/manage-app/src/main/resources/application.yml +++ b/gym-manage-api/manage-app/src/main/resources/application.yml @@ -56,6 +56,7 @@ spring: import: classpath:member-config.yml + management: endpoints: web: