1.解决谐波高级算法远程调用bug
2.新增redis,切库方法
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
package com.njcn.redis.utils;
|
||||
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
|
||||
import org.springframework.data.redis.core.RedisTemplate;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@@ -68,6 +69,31 @@ public class RedisUtil {
|
||||
return (String) redisTemplate.opsForValue().get(key);
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据key和库索引获取内容字(切库之后,之后查询都是切库数据)
|
||||
*
|
||||
* @param dbIndex 指定库索引
|
||||
* @param key key值
|
||||
*/
|
||||
public String getStringByKey(Integer dbIndex,String key) {
|
||||
return getStringByKey(dbIndex,key,true);
|
||||
}
|
||||
/**
|
||||
* 根据key和库索引获取内容字(切库之后,之后查询都是切库数据)
|
||||
*
|
||||
* @param dbIndex 指定库索引
|
||||
* @param key key值
|
||||
* @param fly 是否切回原库
|
||||
*/
|
||||
public String getStringByKey(Integer dbIndex,String key,Boolean fly) {
|
||||
Integer index = setDbIndex(dbIndex);
|
||||
String s = (String) redisTemplate.opsForValue().get(key);
|
||||
if(fly){
|
||||
setDbIndex(index);
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取key对应对象数据
|
||||
*/
|
||||
@@ -101,6 +127,37 @@ public class RedisUtil {
|
||||
redisTemplate.boundValueOps(key).set(value, expireTime, TimeUnit.SECONDS);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 保存数据,指定生命周期(秒)
|
||||
*
|
||||
* @param dbIndex 指定库索引
|
||||
* @param key 键
|
||||
* @param value 值
|
||||
* @param expireTime 生命时间
|
||||
* @param expireTime 生命时间
|
||||
*/
|
||||
public void saveByKeyWithExpire(Integer dbIndex,String key, Object value, Integer expireTime) {
|
||||
saveByKeyWithExpire(dbIndex,key,value,expireTime,true);
|
||||
}
|
||||
/**
|
||||
* 保存数据,指定生命周期(秒)
|
||||
*
|
||||
* @param dbIndex 指定库索引
|
||||
* @param key 键
|
||||
* @param value 值
|
||||
* @param fly 是否切回原库
|
||||
*/
|
||||
public void saveByKeyWithExpire(Integer dbIndex,String key, Object value, Integer expireTime,Boolean fly) {
|
||||
Integer index = setDbIndex(dbIndex);
|
||||
if (expireTime <= 0) {
|
||||
saveByKey(key, value);
|
||||
} else {
|
||||
redisTemplate.boundValueOps(key).set(value, expireTime, TimeUnit.SECONDS);
|
||||
}
|
||||
if(fly){
|
||||
setDbIndex(index);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 顺序的递增和递减
|
||||
@@ -242,4 +299,20 @@ public class RedisUtil {
|
||||
}
|
||||
return info;
|
||||
}
|
||||
private Integer setDbIndex(Integer dbIndex) {
|
||||
if (dbIndex == null || dbIndex > 15 || dbIndex < 0) {
|
||||
dbIndex = 0;
|
||||
}
|
||||
LettuceConnectionFactory jedisConnectionFactory = (LettuceConnectionFactory) redisTemplate
|
||||
.getConnectionFactory();
|
||||
int database = jedisConnectionFactory.getDatabase();
|
||||
jedisConnectionFactory.setDatabase(dbIndex);
|
||||
redisTemplate.setConnectionFactory(jedisConnectionFactory);
|
||||
//需要刷新才能生效
|
||||
jedisConnectionFactory.afterPropertiesSet();
|
||||
// 重置连接
|
||||
jedisConnectionFactory.resetConnection();
|
||||
return database;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user