1.对象类:
package foo.redis.demo;
import java.io.Serializable;
public class ProductInfo implements Serializable{
private static final long serialVersionUID = 1L;
private String name;
private double price;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
}
2.操作案例:
package foo.redis.demo;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import org.junit.Before;
import org.junit.Test;
import com.google.gson.Gson;
import redis.clients.jedis.Jedis;
public class SringData {
private Jedis jedis = null;
@Before
public void init(){
jedis = new Jedis("hadoop1",6379);
}
@Test
public void testString(){
jedis.set("user02:name", "轮滑");
jedis.set("user03:name", "滑板鞋");
String u02 = jedis.get("user02:name");
String u03 = jedis.get("user03:name");
System.out.println(u02);
System.out.println(u03);
}
@Test
public void testObject() throws Exception{
ProductInfo p = new ProductInfo();
p.setName("电视机");
p.setPrice(10.2);
//将对象序列化字节数组
ByteArrayOutputStream ba = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(ba);
//用对象序列化流来将对象序列化,然后把序列化之后的二进制数据写成ba流中
oos.writeObject(p);
//将ba流转成byte数组
byte[] pBytes = ba.toByteArray();
//将对象序列化之后的byte数组存到redis的string结构数据中
jedis.set("product:01".getBytes(),pBytes);
//根据key从redis中取出对象的byte数据
byte[] pBytesResp = jedis.get("product:01".getBytes());
//将byte数据反序列出对象
ByteArrayInputStream bi = new ByteArrayInputStream(pBytesResp);
ObjectInputStream oi = new ObjectInputStream(bi);
//从对象读取流中读取出p对象
ProductInfo pr = (ProductInfo)oi.readObject();
System.out.print(pr);
}
//将对象转成json字符串缓存到redis的String结构数据中
@Test
public void testJson(){
ProductInfo p = new ProductInfo();
p.setName("手机");
p.setPrice(5000.2);
//利用gson将对象转成json串
Gson gson = new Gson();
String json = gson.toJson(p);
//将json串存入redis
jedis.set("prodcut:02", json);
//从redis中取出对象json串
String pjson = jedis.get("prodcut:02");
//将返回的json解析成对象
ProductInfo ps = gson.fromJson(pjson, ProductInfo.class);
System.out.println(ps);
}
}