记得上下班打卡 | git大法好,push需谨慎

Commit 7fbb14b8 authored by anjiabin's avatar anjiabin

实现redis分库工具类

parent 929d8d5c
...@@ -21,5 +21,8 @@ liquidnet: ...@@ -21,5 +21,8 @@ liquidnet:
mongodb: mongodb:
sslEnabled: false sslEnabled: false
database: dev_ln_scene database: dev_ln_scene
dragon:
redis:
database: 0
#以下为spring各环境个性配置 #以下为spring各环境个性配置
\ No newline at end of file
...@@ -21,5 +21,7 @@ liquidnet: ...@@ -21,5 +21,7 @@ liquidnet:
mongodb: mongodb:
sslEnabled: false sslEnabled: false
database: test_ln_scene database: test_ln_scene
dragon:
redis:
database: 0
#以下为spring各环境个性配置 #以下为spring各环境个性配置
...@@ -57,7 +57,7 @@ spring: ...@@ -57,7 +57,7 @@ spring:
profiles: profiles:
include: common-service #这里加载management相关公共配置 include: common-service #这里加载management相关公共配置
redis: redis:
database: 0 database: ${liquidnet.dragon.redis.database}
port: ${liquidnet.redis.dragon.port} port: ${liquidnet.redis.dragon.port}
host: ${liquidnet.redis.dragon.host} host: ${liquidnet.redis.dragon.host}
password: ${liquidnet.redis.dragon.password} password: ${liquidnet.redis.dragon.password}
......
package com.liquidnet.service;
import com.liquidnet.common.cache.redis.util.RedisUtil;
import com.liquidnet.service.dragon.dto.DragonOrdersDto;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
/**
* @author AnJiabin <anjiabin@zhengzai.tv>
* @version V1.0
* @Description: TODO
* @class: TestRedis
* @Package com.liquidnet.service.adam.test
* @Copyright: LightNet @ Copyright (c) 2021
* @date 2021/7/29 13:36
*/
@Slf4j
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class TestRedis {
@Autowired
private RedisUtil redisUtil;
@Test
public void getPayCodeList(){
// List<Object> payCodeList = this.getPrefixKeyValue("dragon:pay:code:*");
// for(Object payCode:payCodeList){
// System.out.println("object=== "+ JsonUtils.toJson(payCode));
// }
//设置新的redis
List<String> keys = getPrefixKeys("dragon:pay:code:*");
log.info("总共迁移数据条数==="+keys.size());
DragonOrdersDto dragonOrdersDto = DragonOrdersDto.getNew();
for(String key:keys){
Object obj = redisUtil.getRedisTemplateByDb(0).opsForValue().get(key);
if(obj!=null){
dragonOrdersDto = (DragonOrdersDto) obj;
}
redisUtil.set(key,dragonOrdersDto);
}
// System.out.println(redisUtil.sGet("kylin:agent:info"));
// System.out.println(redisUtil.sHasKey("kylin:agent:info",14));
// System.out.println(redisUtil.getRedisTemplateByDb(0).opsForValue().get("dragon:pay:code:PAY20210810193315191566757"));
//
// List<Object> values = null;
// // 获取所有的key
// Set<String> keys = redisUtil.getRedisTemplateByDb(0).keys("dragon:pay:code:*");
// if (null != keys){
// for(String ss:keys){
// System.out.println("ss====="+ss);
// }
// // 批量获取数据
// values = redisUtil.getRedisTemplateByDb(0).opsForValue().multiGet(keys);
// }
// for(Object payCode:values){
// System.out.println("object=== "+ JsonUtils.toJson(payCode));
// }
}
@Test
public void getRefundList(){
// List<Object> payCodeList = this.getPrefixKeyValue("dragon:pay:code:*");
// for(Object payCode:payCodeList){
// System.out.println("object=== "+ JsonUtils.toJson(payCode));
// }
//设置新的redis
List<String> keys = getPrefixKeys("dragon:refund:refundCode:dragon:refund:refundCode:*");
String url = "";
log.info("总共迁移数据条数==="+keys.size());
for(String key:keys){
Object obj = redisUtil.getRedisTemplateByDb(0).opsForValue().get(key);
if(obj!=null){
url = (String) obj;
}
key = key.substring(25,key.length());
redisUtil.set(key,url);
}
// System.out.println(redisUtil.sGet("kylin:agent:info"));
// System.out.println(redisUtil.sHasKey("kylin:agent:info",14));
// System.out.println(redisUtil.getRedisTemplateByDb(0).opsForValue().get("dragon:pay:code:PAY20210810193315191566757"));
//
// List<Object> values = null;
// // 获取所有的key
// Set<String> keys = redisUtil.getRedisTemplateByDb(0).keys("dragon:pay:code:*");
// if (null != keys){
// for(String ss:keys){
// System.out.println("ss====="+ss);
// }
// // 批量获取数据
// values = redisUtil.getRedisTemplateByDb(0).opsForValue().multiGet(keys);
// }
// for(Object payCode:values){
// System.out.println("object=== "+ JsonUtils.toJson(payCode));
// }
}
@Test
public void deleteDataFromDb(){
}
/**
* 获取指定前缀的值
* @param prefix key前缀
* @return
*/
public List<Object> getPrefixKeyValue(String prefix) {
List<Object> values = null;
// 获取所有的key
Set<String> keys = redisUtil.getRedisTemplateByDb(0).keys(prefix);
if (null != keys){
for(String ss:keys){
System.out.println("ss====="+ss);
}
// 批量获取数据
values = redisUtil.getRedisTemplateByDb(0).opsForValue().multiGet(keys);
}
return values;
}
/**
* 获取指定前缀的key
* @param prefix key前缀
* @return
*/
public List<String> getPrefixKeys(String prefix) {
List<String> keysList = new ArrayList<>();
// 获取所有的key
Set<String> keys = redisUtil.getRedisTemplateByDb(0).keys(prefix);
if (null != keys){
for(String ss:keys){
keysList.add(ss);
}
}
return keysList;
}
private void switchRedisDbs(){
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment