关于网友提出的“RedisPlugin在Redis clients数涨到8的时候就没反应了”问题疑问,本网通过在网上对“RedisPlugin在Redis clients数涨到8的时候就没反应了”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:RedisPlugin在Redis clients数涨到8的时候就没反应了
描述:
plugin中添加RedisPlugin
//添加Redis
RedisPlugin tkuMain = new RedisPlugin("tkumain","127.0.0.1",6379,1800);
me.add(tkuMain);
在程序中将键加入到redis,过10几分钟后,
newCache.set(correctAnswerKey, correct_answer);
这句执行进去程序就停止了,不知道是什么原因?
Cache newCache = Redis.use("tkumain");
for(Record r : qList){
Map qMap = r.getColumns();
String tiku_id = String.valueOf(qMap.get("tiku_id"));
String correct_answer = String.valueOf(qMap.get("correct_answer"));
String correctAnswerKey = loginId+"_"+aquId+"_"+tiku_id+"_rightAnswer";
newCache.set(correctAnswerKey, correct_answer);
}
通过线程将redis中的数据写入mysql
public class WriteAnswerToDb implements Runnable{
@Override
public void run() {
//从Redis中查询是否正确的数据是否存在,若存在,就往数据库中写入
Cache newCatch = Redis.use("tkumain");
Set keys = newCatch.getJedis().keys("*_isCorrect");
//循环取到key然后查询key是否有值
for(String correctKeys : keys){
String value = newCatch.get(correctKeys);
if(value != null){
System.out.println("存在记录,开始同步。。。。");
String[] keyStr = correctKeys.split("_");
String answerKeys = keyStr[0]+"_"+keyStr[1]+"_"+keyStr[2]+"_userAnswer";
String answer = newCatch.get(answerKeys);
//写入到数据库中
Record r = new Record();
r.set("loginId",keyStr[0]);
r.set("tkuId", keyStr[2]);
r.set("user_answer", answer);
r.set("isCorrect", value);
r.set("aqu_id", keyStr[1]);
r.set("pId", "0");
TTKUserTiku.dao.saveAnswer(r);
//向数据库中写入完成,删除redis中存储的数据
newCatch.del(correctKeys, answerKeys);
}
}
}
}
这里面又操作过redis
public static String saveUserAnswer(String tikuId, String userAnswer,
String loginId, String aquId){
String msg = "";
String isCorrect = "0";
Cache newCache = Redis.use("tkumain");
// String correctAnswer = TTKTiku.dao.getCorrectAnswerById(tikuId);
String correctAnswerKey = loginId+"_"+aquId+"_"+tikuId+"_rightAnswer";
String correctAnswer = newCache.get(correctAnswerKey);
if(userAnswer != null){
if(userAnswer.equals(correctAnswer)){
isCorrect = "1";
}
String isCorrectKey = loginId+"_"+aquId+"_"+tikuId+"_isCorrect";
String userAnswerKey = loginId+"_"+aquId+"_"+tikuId+"_userAnswer";
newCache.set(isCorrectKey, isCorrect);
newCache.set(userAnswerKey, userAnswer);
}
//写入成功返回结果
if("1".equals(isCorrect)){
msg = CommonTools.getMsgJson(0, "right", "2");
}else{
msg = CommonTools.getMsgJson(1, "wrong", "2");
}
return msg;
}
解决方案1:
没有人遇到过吗?
以上介绍了“RedisPlugin在Redis clients数涨到8的时候就没反应了”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/1378042.html