极速体验将分页查询存储在Redis中(分页查询放redis)
随着互联网的发展,性能的提升和数据的存储优化越来越受到重视。Redis作为一种优秀的非关系型数据库,能够在一定程度上提升性能,缓存频繁的数据访问,使用户极速的体验分页查询,非常适合于分页查询数据的应用。
将分页查询信息存储在Redis中,可以极大的提升体验,节省查询分页耗费的时间。一般来说,数据库会都会保存分页信息(sql语句及结果),但当有大量的查询时,会严重影响数据库查询和维护效率,降低系统并行访问能力,引起性能问题,降低用户系统体验。
这时,可以使用redis缓存分页信息,解决这一问题。Redis的存取效率非常高,其操作的延时较low,使用Redis缓存分页数据不仅能减少数据库的压力,还能为用户提供更为流畅的分页查询效果。
下面是Redis存储分页查询的实现代码:
// Redis存储分页查询
public QueryResult cacheQuery(String hql,int pageSize, int pageNo){
String sqlKey = generatorSqlKey(hql, pageSize, pageNo);
String realKey = jedis.get(sqlKey);
if(realKey != null){
String listStr = jedis.hget(realKey, “list”);
int totalCount = Convert.toInt(jedis.hget(realKey, “totalCount”));
QueryResult queryResult = new QueryResult(JSON.parseArray(listStr, Object.class), totalCount, pageSize, pageNo);
return queryResult;
}
QueryResult queryResult = query(hql, pageSize, pageNo);
if(queryResult!=null){
listValue = JSON.toJSONString(queryResult.getList());
jedis.hset(realKey, “list”, listValue);
jedis.hset(realKey, “totalCount”, Convert.toStr(queryResult.getTotalCount()));
jedis.expire(realKey, 3600);
}
return queryResult;
}
通过上面的实现代码,将分页数据存储到Redis中,可以把多次的数据库查询优化成一次查询,只要第一次查询时间有较高,后续就能从Redis中获取查询结果,进而避免消耗大量时间,极大的提高了系统效率,为用户提供极速体验。