替换redis操作类

This commit is contained in:
liliang 2025-04-02 14:44:05 +08:00
parent eaaf2581ab
commit b04c65a949
5 changed files with 109 additions and 16 deletions

View File

@ -0,0 +1,56 @@
package com.imooc.config;
import org.redisson.api.RedissonClient;
import org.redisson.spring.data.connection.RedissonConnectionFactory;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
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.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import lombok.extern.slf4j.Slf4j;
@Slf4j
@Configuration
@ConditionalOnClass(RedissonClient.class)
public class RedisConfig {
private static final RedisSerializer<String> STRING_SERIALIZER = new StringRedisSerializer();
@Bean
RedissonConnectionFactory redisConnectionFactory(RedissonClient redisson) {
log.info("------------->>>配置自定义RedissonConnectionFactory");
return new RedissonConnectionFactory(redisson);
}
@Bean
RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
log.info("------------->>>配置自定义RedisTemplate");
return buildRedisTemplate(redisConnectionFactory);
}
/**
* 配置redisTemplate
*
* @param redisConnectionFactory
* @param enableTransactionSupport
* @return
*/
private RedisTemplate<String, Object> buildRedisTemplate(RedisConnectionFactory redisConnectionFactory) {
// 配置redisTemplate
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
redisTemplate.setConnectionFactory(redisConnectionFactory);
// key序列化
redisTemplate.setKeySerializer(STRING_SERIALIZER);
// value序列化
redisTemplate.setValueSerializer(STRING_SERIALIZER);
// Hash key序列化
redisTemplate.setHashKeySerializer(STRING_SERIALIZER);
// Hash value序列化
redisTemplate.setHashValueSerializer(STRING_SERIALIZER);
// 初始化RedisTemplate
redisTemplate.afterPropertiesSet();
return redisTemplate;
}
}

View File

@ -18,17 +18,19 @@ spring:
max-lifetime: 540000 # 连接池的最大生命时长毫秒超时则会被释放retired
connection-test-query: SELECT 1
redis:
host: 82.156.121.2
port: 26379
password: e4ea0caebfd2
database: 1 # 使用的数据库编号
jedis:
pool:
max-idle: 50 # 最大空闲连接
max-active: 200 # 连接池最大连接数
max-wait: 5000 # 连接池最大阻塞等待时间, -1表示没有限制
min-idle: 4 # 最小空闲连接
timeout: 50000
# host: 82.156.121.2
# port: 26379
# password: e4ea0caebfd2
# database: 1 # 使用的数据库编号
# jedis:
# pool:
# max-idle: 50 # 最大空闲连接
# max-active: 200 # 连接池最大连接数
# max-wait: 5000 # 连接池最大阻塞等待时间, -1表示没有限制
# min-idle: 4 # 最小空闲连接
# timeout: 50000
redisson:
file: classpath:redisson.yml
data:
mongodb:
# uri: mongodb://root:root@192.168.1.202:27017

View File

@ -0,0 +1,19 @@
singleServerConfig:
address: redis://82.156.121.2:26379
password: e4ea0caebfd2
database: 1
idleConnectionTimeout: 10000
connectTimeout: 10000
timeout: 3000
retryAttempts: 3
retryInterval: 1500
clientName: null
subscriptionConnectionMinimumIdleSize: 1
subscriptionConnectionPoolSize: 10
subscriptionsPerConnection: 5
connectionMinimumIdleSize: 4
connectionPoolSize: 20
threads: 0
nettyThreads: 0
codec: !<org.redisson.codec.JsonJacksonCodec> {}
transportMode: NIO

View File

@ -41,10 +41,20 @@
</dependency>
<!-- 引入 redis 依赖 -->
<dependency>
<!--<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
</dependency>-->
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson-spring-boot-starter</artifactId>
<version>3.16.4</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!-- 引入 RabbitMQ 依赖 -->
<dependency>

View File

@ -22,8 +22,10 @@ import com.imooc.vo.UsersVO;
import org.apache.commons.lang3.StringUtils;
import org.n3r.idworker.Sid;
import org.redisson.api.RedissonClient;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.http.HttpStatus;
import org.springframework.security.crypto.password.PasswordEncoder;
import org.springframework.stereotype.Service;
@ -55,8 +57,11 @@ public class UserServiceImpl implements UserService {
@Autowired
private UserMemberMapper userMemberMapper;
@Autowired
public RedisOperator redis;
//@Autowired
//public RedisOperator redis;
@Resource(name = "redisTemplate")
private RedisTemplate<String, Object> redisTemplate;
@Autowired
private Sid sid;
@ -268,7 +273,8 @@ public class UserServiceImpl implements UserService {
return Optional.ofNullable(userMemberMapper.getUserByMemberId(memberId))//
.map(user -> {
String uToken = UUID.randomUUID().toString();
redis.set(REDIS_USER_TOKEN + ":" + user.getId(), uToken);
//redis.set(REDIS_USER_TOKEN + ":" + user.getId(), uToken);
redisTemplate.opsForValue().set(REDIS_USER_TOKEN + ":" + user.getId(), uToken);
// 返回给前端
UsersVO usersVO = new UsersVO();
BeanUtils.copyProperties(user, usersVO);