当前位置: 首页 > news >正文

广告发布登记技术教程优化搜索引擎整站

广告发布登记,技术教程优化搜索引擎整站,石家庄百度搜索引擎优化,网站开发和维护这段时间一直有人问如何在Redis中缓存Java中的List 集合数据#xff0c;其实很简单#xff0c;常用的方式有两种#xff1a;1. 利用序列化#xff0c;把对象序列化成二进制格式#xff0c;Redis 提供了 相关API方法存储二进制#xff0c;取数据时再反序列化回来#xff…这段时间一直有人问如何在Redis中缓存Java中的List 集合数据其实很简单常用的方式有两种1. 利用序列化把对象序列化成二进制格式Redis 提供了 相关API方法存储二进制取数据时再反序列化回来转换成对象。2. 利用 Json与java对象之间可以相互转换的方式进行存值和取值。正面针对这两种方法特意写了一个工具类来实现数据的存取功能。1. 首页在Spring框架中配置 JedisPool 连接池对象此对象可以创建 Redis的连接 Jedis对象。当然必须导入Redis的相关Jar包。Jedis 的Jar包如下commons-pool2-2.3.jarjedis-2.9.0.jar要用到 Json所以还需要导入Json的Jar包commons-beanutils-1.8.0.jarcommons-collections-3.1.jarcommons-lang-2.5.jarcommons-logging-1.1.3.jarezmorph-1.0.6.jarjson-lib-2.3-jdk15.jar在配置文件中配置JedisPool 连接池对象2. 创建一个Redis的工具类RedisUtil这个类中实现了上面所说的两种方法的存取操作package com.sgxy.util; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import net.sf.json.JSONArray; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; Component public class RedisUtil { Autowired JedisPool pool; // Jedis连接池 // 判断Redis中是否存在键 public boolean existsKey(String key) { Jedis jedis pool.getResource(); boolean bool; try { bool jedis.exists(key); } finally { jedis.close(); } return bool; } // 取缓存中的二进制数据反序列化成List集合对象 SuppressWarnings(unchecked) public List getObject(String key, Class clazz) { Jedis jedis pool.getResource(); // 二进制 IO 输入流 ByteArrayInputStream is null; ObjectInputStream ois null; try { // 从缓存中取二进制数据 byte[] b jedis.get(key.getBytes()); is new ByteArrayInputStream(b); ois new ObjectInputStream(is); // 把二进制转换成T指定类型的集合 return (List) ois.readObject(); } catch (Exception e) { e.printStackTrace(); } finally { try { is.close(); ois.close(); } catch (Exception e2) { e2.printStackTrace(); } jedis.close(); } return null; } // 把对象序列化二进制格式并保证到Redis缓存中 public void saveObject(Object object, String key) { Jedis jedis pool.getResource(); // 二进制 IO 输出流 ByteArrayOutputStream os null; ObjectOutputStream oos null; try { os new ByteArrayOutputStream(); oos new ObjectOutputStream(os); oos.writeObject(object); // 二进制数据 byte[] b os.toByteArray(); // 存入二进制数据到Redis缓存中 jedis.set(key.getBytes(), b); } catch (Exception e) { e.printStackTrace(); } finally { try { os.close(); oos.close(); } catch (Exception e2) { e2.printStackTrace(); } jedis.close(); } } // 把List集合对象转换成json格式保存到指定的键中 public void saveJsonArray(Object object, String key) { Jedis jedis pool.getResource(); try { // 格式化成Json字符串 JSONArray array JSONArray.fromObject(object); jedis.set(key, array.toString()); // 存入缓存 } finally { jedis.close(); } } // 通过键取出Json字符串并转换成 Class这个T所指定的类型 SuppressWarnings({ static-access, unchecked }) public List getJsonArray(String key, Class clazz) { Jedis jedis pool.getResource(); try { String str jedis.get(key); JSONArray array JSONArray.fromObject(str); // 把字符串转换回集合对象 clazz是指定的类型 return (List) array.toCollection(array, clazz); } finally { jedis.close(); } } }在Java程序其他地方操作这个工具类做数据的处理Controller //注解这个类为控制器 RequestMapping(grade) //注册访问此控制器的URL public class GradeController { Autowired // 从IOC容器注入业务层对象 GradeService gradeService; Autowired JedisPool pool; Autowired RedisUtil redisUtil; RequestMapping(list) //注册URL public ModelAndView list() { List grades null; if (redisUtil.existsKey(g)) { System.out.println(从Redis 缓存中取数据..); //调用反序列化方法取缓存的数据 grades redisUtil.getObject(g,Grade.class); //调用Json格式转换的方法取缓存数据 //grades redisUtil.getJsonArray(gradeList, Grade.class); } else { System.out.println(从数据库中取数据并存入缓存..); //调用底层方法从数据库中取数据 grades gradeService.find(); //调用序列化方法把数据缓存到Redis中 redisUtil.saveObject(grades, g); //调用Json格式化方法把数据缓存到Redis中 //redisUtil.saveJsonArray(grades, gradeList); } return new ModelAndView(gradeList, grades, grades); } }写到此希望对大家有所帮助。以上所述是小编给大家介绍的在Java程序中运用Redis缓存对象的方法详解整合希望对大家有所帮助如果大家有任何疑问请给我留言小编会及时回复大家的。在此也非常感谢大家对华域联盟网站的支持
http://www.pierceye.com/news/698183/

相关文章:

  • 品牌网站建设毛尖2新加坡二手手机网站大全
  • 服装集团网站建设wordpress rss格式
  • 如何进行网站分析设计说明的英文
  • 仕德伟做的网站图片怎么修做网站深圳
  • 六安电商网站建设哪家好中国电力工程造价信息网
  • 如何做优化网站排alexa优化装修网线
  • 现在视频做网站晚了吗做网站的论文摘要
  • 环保公司网站模板那个公司可以做网站
  • 英雄联盟网站源码开发设计公司
  • 企业形象网站开发名师工作室网站建设
  • o2o网站建设最好公司排名做竹鼠网站
  • 免费做网站软件2003商丘网络营销服务
  • 杭州网站建设加q479185700如何网上外贸接单
  • 针对茅台酒企业网站建设方案鸿基建设工程有限公司网站
  • 有创意营销型网站建设wordpress 慢集市
  • 注册网站多少钱永康电子商务网站建设
  • 江西省网站建设庆阳在线网
  • wordpress建站微信联系智慧政务网站怎么做
  • 邯郸购物网站建设电子商务是干什么的工作
  • 网站开发竞聘报告wordpress彩色标签云设置方法
  • 深圳高端网站建设收费宿州百度seo排名软件
  • 彩妆网站建设报告公司网页是什么
  • 站长之家综合查询工具广州网站网站建设
  • 网站开发如何实现数据库的链接同性性做视频网站
  • 网站建设uuiop网站建设盐城最便宜
  • iss怎么做网站一个旅游网站建设
  • 润州网站建设网址生成
  • 备案网站服务内容域名网站打开慢
  • 做网站域名备案需要多久企业年金查询官网
  • 制作企业网站的公司如何制作广告