java redis hash_我爱java系列---【redis中如何存取hash类型的值(key field value)】
@Servicepublic class CartServiceImpl implementsCartService {private static final String CART="Cart_";
@AutowiredprivateRedisTemplate redisTemplate;
@AutowiredprivateSkuFeign skuFeign;
@AutowiredprivateSpuFeign spuFeign;/*** 添加購物車
*@paramskuId
*@paramnum*/@Overridepublic voidadd(String skuId, Integer num,String username) {/*** 1)查詢redis中的數據
* 2)如果redis中已經有了,則追加數量,重新計算金額
* 3)如果沒有,將商品添加到緩存*/OrderItem orderItem= (OrderItem)redisTemplate.boundHashOps(CART+username).get(skuId);//從redis中取值if (orderItem != null){//存在,刷新購物車
orderItem.setNum(orderItem.getNum()+num);
orderItem.setMoney(orderItem.getNum()*orderItem.getPrice());
orderItem.setPayMoney(orderItem.getNum()*orderItem.getPrice());
}else{//不存在,新增購物車
Result skuResult =skuFeign.findById(skuId);
Sku sku=skuResult.getData();
Spu spu=spuFeign.findByspuId(sku.getSpuId());//將SKU轉換成OrderItem
orderItem = this.sku2OrderItem(sku,spu,num);
}//存入redis
redisTemplate.boundHashOps(CART+username).put(skuId,orderItem);//往redis中存值
}//sku轉換為orderItem
privateOrderItem sku2OrderItem(Sku sku, Spu spu, Integer num) {
OrderItem orderItem= newOrderItem();
orderItem.setSpuId(sku.getSpuId());
orderItem.setSkuId(sku.getId());
orderItem.setName(sku.getName());
orderItem.setPrice(sku.getPrice());
orderItem.setNum(num);
orderItem.setMoney(num*orderItem.getPrice()); //單價*數量
orderItem.setPayMoney(num*orderItem.getPrice()); //實付金額
orderItem.setImage(sku.getImage());
orderItem.setWeight(sku.getWeight()*num); //重量=單個重量*數量//分類ID設置
orderItem.setCategoryId1(spu.getCategory1Id());
orderItem.setCategoryId2(spu.getCategory2Id());
orderItem.setCategoryId3(spu.getCategory3Id());returnorderItem;
}
}
總結
以上是生活随笔為你收集整理的java redis hash_我爱java系列---【redis中如何存取hash类型的值(key field value)】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php5.4.45的php.ini文件
- 下一篇: Android学习之网上商城(上)