第四章 String类型数据结构api操作

来源:互联网 发布:数据恢复软件正式版 编辑:程序博客网 时间:2024/06/11 18:03

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);
    }
}


原创粉丝点击