您好,欢迎来到[编程问答]网站首页   源码下载   电子书籍   软件下载   专题
当前位置:首页 >> 编程问答 >> Java >> RedisPlugin在Redis clients数涨到8的时候就没反应了

RedisPlugin在Redis clients数涨到8的时候就没反应了

来源:网络整理     时间:2016/5/29 3:09:15     关键词:client,plugin

关于网友提出的“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

相关图片

相关文章