springboot集成redis操作处理如下
一、application.yml配置
spring:
profiles:
active: env
application:
name: iot-interfaces-tcpauth
jackson:
time-zone: GMT+8
date-format: yyyy-MM-dd HH:mm:ss
redis:
host: 127.0.0.1
port: 6379
password:
timeout: 10
database: 1
max-total: 8 # 最大连接数
max-wait-millis: 1 # 最大阻塞时间
max-idle: 4
min-idle: 0
二、配置redis链接工厂
package net.kw360.tcpauth.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisStandaloneConfiguration;
import org.springframework.data.redis.connection.jedis.JedisClientConfiguration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import redis.clients.jedis.JedisPoolConfig;
import java.time.Duration;
/**
* @author KW360
*/
@Configuration
public class RedisConfig {
@Value("${redis.host}")
private String host;
@Value("${redis.port}")
private Integer port;
@Value("${redis.password}")
private String password;
@Value("${redis.database}")
private int database;
@Value("${redis.timeout}")
private int timeout;
@Value("${redis.max-wait-millis}")
private long maxWaitMillis;
@Value("${redis.max-total}")
private Integer maxTotal;
@Value("${redis.max-idle}")
private Integer maxIdle;
@Value("${redis.min-idle}")
private Integer minIdle;
@Bean
public JedisPoolConfig jedisPoolConfig() {
JedisPoolConfig poolConfig = new JedisPoolConfig();
poolConfig.setMaxTotal(maxTotal);
poolConfig.setMaxIdle(maxIdle);
poolConfig.setMinIdle(minIdle);
poolConfig.setMaxWaitMillis(maxWaitMillis);
// 其他配置项设置
return poolConfig;
}
@Bean
public JedisConnectionFactory jedisConnectionFactory(JedisPoolConfig poolConfig) {
RedisStandaloneConfiguration config = new RedisStandaloneConfiguration();
config.setHostName(host);
config.setPassword(password);
config.setDatabase(database);
config.setPort(port);
Duration readTimeout = Duration.ofSeconds(timeout);
// 其他 Redis 配置项设置
JedisClientConfiguration clientConfig = JedisClientConfiguration.builder()
.readTimeout(readTimeout)
.usePooling().poolConfig(poolConfig)
.build();
return new JedisConnectionFactory(config, clientConfig);
}
@Bean
public RedisTemplate<String, Object> redisTemplate(JedisConnectionFactory connectionFactory) {
RedisTemplate<String, Object> template = new RedisTemplate<>();
RedisSerializer<?> stringSerializer = new StringRedisSerializer();
GenericJackson2JsonRedisSerializer jsonSerializer = new GenericJackson2JsonRedisSerializer();
template.setConnectionFactory(connectionFactory);
//StringRedisTemplate 序列化
template.setKeySerializer(stringSerializer);
template.setValueSerializer(jsonSerializer);
//RedisTemplate<String, Object> 序列化
template.setHashKeySerializer(stringSerializer);
template.setHashValueSerializer(jsonSerializer);
template.afterPropertiesSet();
return template;
}
}
三、引用并操作
package net.kw360.tcpauth.core.handler;
import javax.annotation.Resource;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.Objects;
import java.util.UUID;
/**
* @author kw360
*/
@Component
public class AuthHandler {
@Resource
private RedisTemplate redisTemplate;
public void onAuth() {
String deviceCode = "002412451442";
String ipStr = "<192.168.21.45>";
if(Boolean.TRUE.equals(redisTemplate.opsForSet().isMember("{device}:{list}", deviceCode))) {
ipStr = "<47.110.165.124>";
}
}
}
nginx配置node vue前端出现
java Name for argument of type xxx not specified
java应用程序阿里云CPU过高Arthas如何排查
tomcat如何关闭catalina.out日志