011-Spring AOP入门

Vue项目实战----电商后台管理系统(第二天)

  返回  

Redis入门十五:Java中使用Redis五:利用Jedis缓存数据一;(其实,就是利用redis存储对象)

2021/7/20 15:31:29 浏览:

说明:

(1)演示【如何在redis数据库中,存储对象】

          ● MySQL数据库,默认会把数据存在硬盘上;由于硬盘的读写速度较慢,随着数据量的增大,并发数的增加,导致MySQL处理速度较慢,出现延迟。

          ● Redis利用内存来存储数据,内存读写速度很快;所以,在项目中,比如【商品数据】、【人员信息】、【设备信息】、【资产状况】等不太经常变动的数据,通常使用Redis来存储;

          ● 本篇博客就是演示【如何在redis数据库中,存储对象】,模拟在实际开发中,redis的使用;

(2)本篇博客中,对象序列化的方式,采用的是JSON序列化;

(3)本篇博客的例子多少还是有点玩具性质;具体redis在实际中的使用方式,还是需要在实际项目了解;

Goods类:

package com.imooc.jedis;

public class Goods {
    private Integer goodsId;
    private String goodsName;
    private String description;
    private Float price;

    public Goods() {
    }

    public Goods(Integer goodsId, String goodsName, String description, Float price) {
        this.goodsId = goodsId;
        this.goodsName = goodsName;
        this.description = description;
        this.price = price;
    }

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

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public Float getPrice() {
        return price;
    }

    public void setPrice(Float price) {
        this.price = price;
    }
}

 说明:

(1)Goods类没什么好说的,就是一普通的商品信息类;

……………………………………………………

CacheSample类: 

package com.imooc.jedis;

import com.alibaba.fastjson.JSON;
import redis.clients.jedis.Jedis;

import java.util.ArrayList;
import java.util.List;

public class CacheSample {
    public CacheSample() {
        List<Goods> goodsList = new ArrayList<Goods>();
        goodsList.add(new Goods(001,"商品1","描述1",101f));
        goodsList.add(new Goods(002,"商品2","描述2",102f));
        goodsList.add(new Goods(003,"商品3","描述3",103f));
        //在实际项目中,这些数据应该都是从数据库中查询得来的;
        Jedis jedis = new Jedis("1**.***.***.**4", 6380);
        try {
            jedis.auth("12345");//输入密码,获取授权
            jedis.select(4);
            for (Goods goods : goodsList) {
                String goodsJson = JSON.toJSONString(goods);//使用Json的方式,将对象序列化
                String key = "goods:" + goods.getGoodsId();
                jedis.set(key,goodsJson);//将goods对象序列化后的【JSON字符串】存放到Redis数据库中;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }finally {
            jedis.close();
        }
    }

    public static void main(String[] args) {
        new CacheSample();
    }
}

说明:

(1)关于对象序列化的内容,可以参考

          ● Java序列化:【Java输入输出流九:对象序列化(需要用到字节流中的ObjectOutputStream[对象输出流]和ObjectInputStream[对象输入流])】

          ● JSON序列化:【JSON六:Java:对象集合序列化成JSON(数组);JSON(数组)反序列化为对象集合;】

          ● 【】

这儿,我们选用JSON作为序列化的方式;

(2)Java中JSON序列化需要FashJson;关于FastJson可以参考【JSON四:Java:处理JSON简介;FastJson下载安装;】,【JSON五:Java:对象转换成JSON字符串;JSON字符串转换为对象;】,【JSON六:Java:对象集合序列化成JSON(数组);JSON(数组)反序列化为对象集合;】

这儿我们通过Maven的方式,引入FastJson:

  

(3)然后,在redis数据库中,可以看刚才存入的数据;

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号