Redis 中 byte格式 写入、取出

本文详细介绍了一种使用Java序列化技术将实体类对象转换为字节流,并将其存储到Redis数据库中的方法。通过示例代码,展示了如何将News实体类实例化并序列化为字节数组,然后使用Jedis客户端将这些数据写入Redis,以及如何从Redis中读取字节数组并反序列化为News对象列表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

实体类:

package com.nf.redisDemo1.entity;


import java.io.Serializable;


public class News implements Serializable {

    private long id;
    private String title;
    private String body;

    public News() {
    }

    public News(String title, String body) {
        this.title = title;
        this.body = body;
    }

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getBody() {
        return body;
    }

    public void setBody(String body) {
        this.body = body;
    }

}

操作代码:

package com.nf.redisDemo1;


import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.nf.redisDemo1.entity.News;
import com.nf.redisDemo1.service.NewsService;
import com.nf.redisDemo1.service.imp.NewsServiceImp;
import com.nf.redisDemo1.spring.SpringRootConfig;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import redis.clients.jedis.Jedis;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

public class Main {

    public static void main(String[] args) throws IOException, ClassNotFoundException {

        Jedis jedis = new Jedis();
        String key = "listNews";

        // Byte 写入 Redis
        List<News> news = new ArrayList<>();
        news.add(new News("title1","body1"));
        news.add(new News("title2","body2"));
        news.add(new News("title3","body3"));

        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos = new ObjectOutputStream(baos);
        oos.writeObject(news);

        //写入 Redis
        jedis.set(key.getBytes(), baos.toByteArray());
        //关闭流
        oos.close();

        // 读取 Byte格式 存入的数据
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(jedis.get(key.getBytes()));
        ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayInputStream);
        List<News> o = (List<News>) objectInputStream.readObject();

        System.out.println(o);

    }
}

 

 

 

学无止境(LC)

 

转载于:https://www.cnblogs.com/ldl326308/p/10188931.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值