你的位置:首页 > 软件开发 > Java > Servlet数据缓存

Servlet数据缓存

发布时间:2016-10-02 16:00:10
缓存是提高数据访问能力,降低服务器压力的一种必要的方式,今天我要说的数据缓存方式有两种,1-->session对单个数据访问接口页面的数据进行缓存,2-->单例模式对整个servlet页面一个公用的数据缓存。 3-->cookie本地缓存一、什么是缓存 ...

 缓存是提高数据访问能力,降低服务器压力的一种必要的方式,今天我要说的数据缓存方式有两种,1-->session对单个数据访问接口页面的数据进行缓存,2-->单例模式对整个servlet页面一个公用的数据缓存。 3-->cookie本地缓存

一、什么是缓存

                  什么是缓存,为了让看者更好的理解,我这里就用自己的理解来举例说明,例如当前我们正在做一个商城类的app,app首页要加载显示很多商品,数据量比较大,像这样的数据接口最适合给其加一个缓存了,因为这样的数据接口反馈的数据都是公用的(所有人都是用它,不会根据不同用户判断,加载不同的数据) 。在我们没有增加缓存之前,每当用户在app上点击对应的调用接口页面之后,servlet都会去访问数据库,从数据库中取得数据。但是当我们加了缓存后,只要有一个用户访问了这个接口数据库之后,我们就会将这份数据保存到缓存中,那么下次只要有用户调用该接口,servlet就会从缓存中读取保存的数据,然后反馈给用户。

二、session

               session对点缓存,它保存的缓存,无法在其他页面进行访问,数据保存在服务器内存中,下面我来代码。               

 1 //查询出游戏表当前所有数据 2     else if(Type.equals("3")) 3     { 4        5        6        HttpSession session = request.getSession();  7        // 判断session中 allGamesDataList的值是否为空,由于下面的代码对session设置了过期时间,所以只要过期了,servlet 8        //这个值也会自动设置为空 9        if (session.getAttribute("allGamesDataList") != null) { 10          11          returnJsonObject=(JSONObject) session.getAttribute("allGamesDataList");12           response.getWriter().println(returnJsonObject.toString());13          return;14        } else{ 15          16          17        18        }19     20       mysqlParameter=new String[]{"account"};23      returnData=MySqlHepler.executeQueryT("select __ from __ where __!=?", mysqlParameter);24            25       try {26          returnJsonObject =new JSONObject();27          returnJsonArray=ResultToJsonTool.resultSetToJsonArry(returnData);28           returnJsonObject.put("Rows", returnJsonArray);31          returnJsonObject.put("GetType", "0");32          returnJsonObject.put("Success", "1");33           //缓存5分钟过期,5分钟内有人调用该接口,会直接从缓存中获得数据,5分钟后必须再访问一次数据库获得数据并保存到缓存中37          session.setMaxInactiveInterval(5 * 60);38          session.setAttribute("allGamesDataList", returnJsonObject);39          response.getWriter().println(returnJsonObject.toString());40          41       } catch (SQLException | JSONException e1) {42         43         44         e1.printStackTrace();45       }46       47     }

原标题:Servlet数据缓存

关键词:缓存

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。