創建一個商品詳情頁面展示的工程。是一個表現層工程。
達成效果:
在搜索結果頁面點擊商品圖片或者商品標題,展示商品詳情頁面。
前端展示代碼:
<c:forEach items="${itemList }" var="item"> <li> <div class="l-wrap"> <div class="pic"> <a class="trackref" href="http://localhost:8087/item/${item.id}.html" title="" target="_blank"> <img src="${item.images[0] }" style="display:inline"/> </a> </div> <div class="price"> <span><span class="p-now">¥<strong><fmt:formatNumber groupingUsed="false" maxFractionDigits="2" minFractionDigits="2" value="${item.price / 100 }"/></strong></span><span class="p-nor"></span><span class="active" style="">直降</span></span> </div> <div class="title-a"> <a class="trackref presaleSign_225865" href="http://localhost:8087/item/${item.id}.html" target="_blank">${item.title }</a> </div> <div class="title-b" style=""><a class="trackref" href="http://localhost:8087/item/${item.id}.html" target="_blank">${sell_point }</a></div> <div class="comment"> <div class="owner_shop_list">自營</div> </div> </div> </li> </c:forEach>
url請求:
http://localhost:8087/item/${item.id}.html
參數:
item.id 商品id
根據id查詢響應的數據后將數據轉發到響應頁面。
緩存添加分析
使用redis做緩存
業務邏輯:
1、根據商品id到緩存中查找
2、查到緩存,直接返回。
3、查不到,查詢數據庫
4、把數據放到緩存中
5、返回數據
因為hash
hash是一個string類型的field和value的映射表
127.0.0.1:6379> HMSET user:1 username runoob password runoob points 200 OK 127.0.0.1:6379> HGETALL user:1 1) "username" 2) "runoob" 3) "password" 4) "runoob" 5) "points" 6) "200"
上面只有key user能設置過期時間
String才可以設置過期時間
緩存中緩存熱點數據,提供緩存的使用率。需要設置緩存的有效期。一般是一天的時間,可以根據實際情況跳轉。
為避免item和item_desc兩張表id相同或者其它數據相同,所以采用一下命名方式進行區分:
需要使用String類型來保存商品數據。
可以加前綴方法對象redis中的key進行歸類。
ITEM_INFO:123456:BASE
ITEM_INFO:123456:DESC
如果把二維表保存到redis中:
1、表名就是第一層
2、主鍵是第二層
3、字段名第三次
三層使用“:”分隔作為key,value就是字段中的內容。