jedis连接池配置
importorg.springframework.beans.factory.annotation.Value;importorg.springframework.stereotype.Component;importorg.springframework.stereotype.Service;importredis.clients.jedis.JedisPoolConfig;importredis.clients.jedis.JedisShardInfo;importredis.clients.jedis.ShardedJedisPool;importjava.util.LinkedList;importjava.util.List;publicclassJedisConfig{@Value("${spring.redis.host}")privateString host;@Value("${spring.redis.port}")privateString port;@Value("${spring.redis.password}")privateString password;publicShardedJedisPool pool=null;publicShardedJedisPoolgetJedisPool(){if(pool==null){JedisPoolConfig config=newJedisPoolConfig();
config.setMaxTotal(10);
config.setMaxIdle(10);
config.setMaxWaitMillis(-1);
config.setTestOnBorrow(true);
config.setTestOnReturn(true);JedisShardInfo jedisShardInfo1=newJedisShardInfo(host, port);if(password!=null){
jedisShardInfo1.setPassword(password);}List<JedisShardInfo> list=newLinkedList<JedisShardInfo>();
list.add(jedisShardInfo1);
pool=newShardedJedisPool(config, list);}return pool;}}
具体使用jedis
@AutowiredJedisConfig jedisConfig;ShardedJedis jedis= jedisConfig.getJedisPool().getResource();
jedis.setex(redisKey.getBytes(),CommonConstant.EXPORTTIME, jsonContent);byte[] bytes= jedis.get(redisKey.getBytes());
实战导出,数据量过大时方式处理时间过长中间存入reids再进行下载
importorg.jeecgframework.poi.excel.ExcelExportUtil;importorg.apache.poi.ss.usermodel.Workbook;importorg.jeecgframework.poi.excel.entity.ExportParams;importjava.io.ByteArrayOutputStream;Workbook workbook=ExcelExportUtil.exportExcel(newExportParams(title, secondTitle, sheetName),Class,Collection, exportFields);ByteArrayOutputStream bos=newByteArrayOutputStream();
workbook.write(bos);String redisKey=CommonConstant.EXCELPORTPRE;byte[] jsonContent= bos.toByteArray();ShardedJedis jedis= jedisConfig.getJedisPool().getResource();
jedis.setex(redisKey.getBytes(),CommonConstant.EXPORTTIME, jsonContent);
workbook.close();
bos.close();
jedis.close();
下载方法
String title="";ShardedJedis jedis= jedisConfig.getJedisPool().getResource();String redisKey=CommonConstant.EXCELPORTPRE;byte[] bytes= jedis.get(redisKey.getBytes());try{
response.setContentType("application/force-download");
response.addHeader("Content-Disposition","attachment;fileName="+newString(title.getBytes("GBK"),"iso-8859-1"));ServletOutputStream outputStream= response.getOutputStream();
outputStream.write(bytes);
jedis.del(redisKey.getBytes());
jedis.close();}catch(IOException e){
e.printStackTrace();}