The Case of Adding Deleting and Cleaning Cache of redis in java
- 2021-08-31 07:54:28
- OfStack
I won't talk too much, let's just look at the code ~
Controller
@ApiOperation(value = " Get information and put it into Redis Medium ")
@RequestMapping(value = "/getPropertyTakeLookShoppingDetailRedis",method = RequestMethod.POST)
public JsonResult getPropertyTakeLookShoppingDetailRedis(@RequestBody PropertyTakeLookRedisParam param) throws Exception {
log.info("PropertyTakeLookController.getPropertyTakeLookShoppingDetailRedis:" + param);
JSONObject jsonObject = propertyTakeLookWriteService.getPropertyTakeLookShoppingDetailRedis(param);
log.info("PropertyTakeLookController.getPropertyTakeLookSysInfo:" + jsonObject);
return JsonResult.getResult(jsonObject);
}
Service
Add, delete, check, distinguish and read cache = 0; Add = 1; Delete = 2; Clear the corresponding broker list cache = 3 ")
/**
* Get information and put it into Redis Medium
* @return
* @throws Exception
*/
public JSONObject getPropertyTakeLookShoppingDetailRedis(PropertyTakeLookRedisParam param) throws Exception {
String takeLookStr = "DKQD";
checkArgument(StringUtils.isNotBlank(param.getTakeLookUserEmpNo()), " Job number cannot be empty! ");
checkArgument(param.getSelOrAddOrRemove() != null, " Add, delete and check distinction cannot be blank! ");
String takeLookUserEmpNo = param.getTakeLookUserEmpNo();
JSONObject jsonObject;
if(redisHandle.exists(takeLookUserEmpNo+takeLookStr) && param.getSelOrAddOrRemove() == 0){
jsonObject = JSONObject.parseObject(redisHandle.get(takeLookUserEmpNo+takeLookStr).toString());
} else if(param.getSelOrAddOrRemove() == 1 || param.getSelOrAddOrRemove() == 2){
Long[] effectiveIds = param.getPropertyEffectiveId();
PropertyTakeLookShoppingCartParam propertyTakeLookShoppingCartParam = new PropertyTakeLookShoppingCartParam();
BeanUtils.copyProperties(param,propertyTakeLookShoppingCartParam);
propertyTakeLookShoppingCartParam.setPropertyEffectiveId(effectiveIds);
// Getting information
PageInfo<?> takeLookDetail = propertytakelookService.getPropertyTakeLookShoppingCartDetail(propertyTakeLookShoppingCartParam);
System.out.print(" Parameter view " + JsonResult.getResult(takeLookDetail).toJson());
jsonObject = JSONObject.parseObject(JsonResult.getResult(takeLookDetail).toJson());
Object jsonArray = jsonObject.get("data");
redisHandle.set(takeLookUserEmpNo+takeLookStr,jsonArray);
}else if (redisHandle.exists(takeLookUserEmpNo+takeLookStr) && param.getSelOrAddOrRemove() == 3){
// Physically clear the cache
redisHandle.remove(takeLookUserEmpNo+takeLookStr);
jsonObject = new JSONObject();
jsonObject.put("code",ErrorCode.SUCCESS.getCode());
jsonObject.put("msg",ErrorCode.SUCCESS.getMsg());
}else {
jsonObject = new JSONObject();
jsonObject.put("code",ErrorCode.SUCCESS.getCode());
jsonObject.put("msg",ErrorCode.SUCCESS.getMsg());
}
return jsonObject;
}
Supplement: java Delete redis according to key specified by keyword (support for fuzzy deletion)
pom depends on:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.5.0</version>
</dependency>
The code is directly available:
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import redis.clients.jedis.Jedis;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
public class TestRedis {
private Jedis jedis;
@BeforeClass
public void setup() {
// Connect redis Server, ip
jedis = new Jedis("ip", 6379);
// Authority authentication
jedis.auth("123456");
}
/**
* Delete data
*
*
* @param key The of the data to delete key
* @return : Returns boolean Value indicating whether the deletion was successful
*/
public boolean delete(String key) {
if (jedis.exists(key)) {
if (jedis.del(key) == 1) {
System.out.println(" Delete data successfully ");
return true;
} else {
System.out.println(" Failed to delete data ");
return false;
}
} else {
System.out.println(key + " Nonexistent ");
return false;
}
}
@Test
public void test() {
delete("age");
}
}