案例一
import redis.clients.jedis.Jedis;
import java.util.Map;
/**
* redis 操作map
*/
public class RedisMain {
public static void main(String[] args) throws Exception{
Jedis jedis = new Jedis("127.0.0.1",6379);
String response = jedis.ping();
System.out.println(response);
jedis.del("daxia:king");
//创建一个对象
jedis.hset("daxia:king","姓名","不为人知");
jedis.hset("daxia:king","年龄","20");
jedis.hset("daxia:king","技能","杀人于无形");
//打印对象
Map<String,String> map = jedis.hgetAll("daxia:king");
System.out.println("大侠的基本信息:");
for(Map.Entry entry : map.entrySet()){
System.out.println(entry.getKey()+":-------"+entry.getValue());
}
System.out.println();
//获取大侠的年龄,进行研究
String age = jedis.hget("daxia:king","年龄");
System.out.println("对大侠的年龄有质疑:"+age);
//年龄增加十岁
jedis.hincrBy("daxia:king","年龄",10);
System.out.println("经过验核,大侠的实际年龄为:"+ jedis.hget("daxia:king","年龄"));
System.out.println();
//删除大侠的姓名
jedis.hdel("daxia:king","姓名");
for(Map.Entry entry : jedis.hgetAll("daxia:king").entrySet()){
System.out.println(entry.getKey()+":"+entry.getValue());
}
}
}
案例二
Product:
import java.math.BigDecimal;
public class Product {
private String id;
private String name;
private BigDecimal price;
private int num;
public Product() {
}
public Product(String id, String name, BigDecimal price) {
this.id = id;
this.name = name;
this.price = price;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getPrice() {
return price;
}
public void setPrice(BigDecimal price) {
this.price = price;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
@Override
public String toString() {
return "Product{" +
"id='" + id + '\'' +
", name='" + name + '\'' +
", price=" + price +
", num=" + num +
'}';
}
}
Cart:
import com.google.gson.Gson;
import redis.clients.jedis.Jedis;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Cart {
private Jedis jedis;
public Cart() {
jedis = new Jedis("127.0.0.1", 6379);
}
public Cart(Jedis jedis) {
this.jedis = jedis;
}
/**
* 修改购物车中的商品
* @param userName
* @param productId
* @param num
*/
public void updateProduct2Cart(String userName, String productId, int num) {
jedis.hincrBy("shop-cart:" + userName, productId, num);
}
/*
* 获取购物车中的商品信息
* */
public List<Product> getProductsByUserName(String userName) {
List<Product> products = new ArrayList<Product>();
Map<String, String> productMap = jedis.hgetAll("shop-cart:" + userName);
if (productMap == null || productMap.size() == 0) {
return products;
}
for (Map.Entry entry : productMap.entrySet()) {
Product product = new Product();
//获取用户购物车中的商品编号
product.setId((String) entry.getKey());
int num = Integer.parseInt((String) entry.getValue());
product.setNum(num > 0 ? num : 0);
complementOtherField(product);
products.add(product);
}
return products;
}
private void complementOtherField(Product product) {
String productId = product.getId();
String productJsonStr = jedis.get("shop-product:" + productId);
Product productJson = new Gson().fromJson(productJsonStr, Product.class);
if (productJson != null) {
product.setName(productJson.getName());
product.setPrice(productJson.getPrice());
}
}
public static void main(String[] args) {
initData();
Cart cart = new Cart();
String userName = "Mike";
//向购物车添加商品
cart.updateProduct2Cart(userName, "3123918948914", 10);
cart.updateProduct2Cart(userName, "5667261241411", 100);
cart.updateProduct2Cart(userName, "9565613461134", -10);
//打印当前用户的购物车信息
List<Product> products = cart.getProductsByUserName(userName);
for (Product product : products) {
System.out.println(product);
}
}
private static void initData() {
System.out.println("******* 初始化商品信息 *********");
Jedis jedis = new Jedis("127.0.0.1", 6379);
Product product1 = new Product("3123918948914", "惠普(HP)24ES 23.8英寸 全高清IPS 纤薄机身 电脑屏幕 液晶显示器", new BigDecimal(166));
Product product2 = new Product("5667261241411", "三星(SAMSUNG)27英寸 1800R曲面旗舰窄边框 HDMI/DP高清接口 电脑显示器", new BigDecimal(99));
Product product3 = new Product("9565613461134", "戴尔(DELL) U2417H 23.8英寸四边微边框旋转升降IPS屏", new BigDecimal(500));
/*
* 数据写入 redis
* */
jedis.set("shop-product:" + product1.getId(), new Gson().toJson(product1));
jedis.set("shop-product:" + product2.getId(), new Gson().toJson(product2));
jedis.set("shop-product:" + product3.getId(), new Gson().toJson(product3));
/*
* 打印所有产品信息
* */
Set<String> allProductKeys = jedis.keys("shop-product:*");
for (String key : allProductKeys) {
String json = jedis.get(key);
Product product = new Gson().fromJson(json, Product.class);
System.out.println(product);
}
System.out.println("===================用户购物车信息如下=================");
}
}