redis存储对象

  • redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。在实际工作中需要将数据以对象的形式存储,实现如下:
  • 配置redis可以参考 http://blog.csdn.net/leo187/article/details/78704811
  • 配置成功后进行如下操作
  • 先创建一个测试对象goods
package com.project.entity;

import java.io.Serializable;
//实体实现序列化接口
public class EmallGoods  implements Serializable  {
    private Integer goodsid;
    private String goodsname;
    public Integer getGoodsid() {
        return goodsid;
    }
    public void setGoodsid(Integer goodsid) {
        this.goodsid = goodsid;
    }
    public String getGoodsname() {
        return goodsname;
    }

    public void setGoodsname(String goodsname) {
        this.goodsname = goodsname == null ? null : goodsname.trim();
    }
}
  • 序列化、反序列化Util类
package com.project.controller.Redis;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;

public class SerializeUtilNew {
      public static byte[] serialize(Object object) {
            ObjectOutputStream oos = null;
            ByteArrayOutputStream baos = null;
            try {
                baos = new ByteArrayOutputStream();
                oos = new ObjectOutputStream(baos);
                oos.writeObject(object);
                byte[] bytes = baos.toByteArray();
                return bytes;
           } catch (Exception e) {
               e.printStackTrace();
           }
            return null;
     }

      public static Object unserialize( byte[] bytes) {
            ByteArrayInputStream bais = null;
            try {
                bais = new ByteArrayInputStream(bytes);
                ObjectInputStream ois = new ObjectInputStream(bais);
                return ois.readObject();
           } catch (Exception e) {

           }
            return null;
     }
}
  • 实例调用
public void selectReviewsByGoodsId(HttpServletRequest request){
            EmallGoods goodsInfo = new EmallGoods();
            goodsInfo.setGoodsid(1000);
            goodsInfo.setGoodsname("晨光 M&G 中性笔 K35 0.5mm(黑色)12支/盒(替芯:G-5)");
            try {
            //以商品id为key,商品对象为value存储    
                Jedis jedis = new Jedis();
                jedis.set(goodsInfo.getGoodsid().toString().getBytes(),SerializeUtilNew.serialize(goodsInfo));
                byte[] value = jedis.get(goodsInfo.getGoodsid().toString().getBytes());
                Object object = SerializeUtilNew.unserialize(value);           
                if(object!= null){
                        EmallGoods goo=(EmallGoods) object;
                        System. out.println(goo.getGoodsname());
                        System. out.println(goo.getGoodsid());
                   }
            } catch (Exception e) {
                System.out.println("无法更新该商品缓存");
            }
    }

-打印输出:

晨光 M&G 中性笔 K35 0.5mm(黑色)12支/盒(替芯:G-5)
1000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值