首页 > 数据库 >Jedis存储一个以byte[]的形式的对象到Redis

Jedis存储一个以byte[]的形式的对象到Redis

时间:2024-11-24 11:59:04浏览次数:10  
标签:REDIS Redis value private Jedis User import jedis byte

1.1 准备一个User实体类
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.Date;

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User implements Serializable {
    private Integer id;
    private String name;
    private Date birthday;
}
1.2 导入Maven依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
    <exclusions>
        <exclusion>
            <groupId>io.lettuce</groupId>
            <artifactId>lettuce-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<!--  切换 jedis 作为操作redis的底层客户端-->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
</dependency>
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
1.3 创建TestSetByteArray测试类,编写内容
import org.springframework.util.SerializationUtils;
import redis.clients.jedis.Jedis;

import java.util.Date;

public class TestSetByteArray {
    // Redis服务器信息
    private static final String REDIS_HOST = "192.168.200.141";
    private static final int REDIS_PORT = 6379;
    private static final String REDIS_PASSWORD = "sl183691";

    public static void main(String[] args) {
        //1. 连接Redis
        Jedis jedis = new Jedis(REDIS_HOST, REDIS_PORT);
        jedis.auth(REDIS_PASSWORD);

        //2.1 准备key(String)-value(User)
        String key = "user";
        User value = new User(1, "张三", new Date());
        //2.2 将key和value转换为byte[]
        byte[] byteKey = SerializationUtils.serialize(key);
        byte[] byteValue = SerializationUtils.serialize(value);
        //2.3 将key和value存储到Redis
        jedis.set(byteKey, byteValue);
        System.out.println("===================================================");

        //3. 获取操作结果
        //3.1 jedis去Redis中获取value
        byte[] value2 = jedis.get(byteKey);
        //3.2 将value反序列化为User对象
        User user = (User) SerializationUtils.deserialize(value2);
        //3.3 输出
        System.out.println("user:" + user);

        //4. 释放资源
        jedis.close();
    }
}

测试结果:

在这里插入图片描述

标签:REDIS,Redis,value,private,Jedis,User,import,jedis,byte
From: https://blog.csdn.net/weixin_39033358/article/details/144005481

相关文章

  • [Redis 基础知识] Redis Set 类型常用命令
    (1)简介Redis的Set是String类型的无序集合。集合元素是唯一的,这就意味着集合中不能出现重复的数据。Redis中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。集合中最大的元素数为2^32-1(4294967295,每个集合可存储40多亿个元素)。(2)常用命令命令......
  • 第三章 分布式缓存Redis
    1.Redis持久化1.1RDB持久化RedisDatabaseBackend备份机制,也叫Redis快照。在Redis中,fork用于创建子进程来进行数据持久化操作,这样可以避免阻塞主进程,从而提高性能。1.1.1RDB方式bgsave的基本流程?1.fork主进程得到一个子进程,共享内存空间2.子进程读取内存数据并写入......
  • Redis如何保证高可靠性?(Redis集群模式)
    高可靠性数据尽量少丢失:AOF和RDB的持久化保证了数据尽量少丢失服务尽量少中断:增加副本冗余量通过如下3种集群模式保证高可靠性主从模式主从节点之间采用的是读写分离的方式,从节点只负责读操作,主节点负责读写操作,由主节点同步给从节点重要概念复制偏移量主从节点,......
  • Redis的高可用性
    前言  对于Redis的知识的话我在前两篇文章当中已经说明了,那么这篇文章的话我们就会在前两篇的基础之上进行一个知识的提高,让我们的思考的高度更升一层楼,加油加油Redis的高可用性: 我们在前面说的知识其实都是在一台机器上实现的,可是我们就要想一个问题那么就是......
  • Redis最终篇分布式锁以及数据一致性
     在前三篇我们几乎说完了Redis的所有的基础知识以及Redis怎么实现高可用性,那么在这一篇文章中的话我们主要就是说明如果我们使用Redis出现什么问题以及解决方案是什么,这个如果在未来的工作中也有可能会遇到,希望对看这篇博客的人有帮助,话不多说直接开干一.Hotkey以及BigK......
  • Redis集群
    文章目录集群1.槽分配2.集群中执行命令3.重新分片4.ASK错误5.复制和故障转移5.1故障转移集群Redis集群是redis提供的分布式数据库方案,集群通过分片来进行数据共享。//连接集群中各个节点,将指定ip和port的节点添加到当前集群clustermeetipportclust......
  • 查找redis数据库的路径
    Redis数据库的路径通常由配置文件中的dir参数指定查找Redis配置文件:Redis配置文件通常命名为redis.conf。您可以在以下位置查找它:/etc/redis/redis.conf(Linux系统上的常见位置)/usr/local/etc/redis/redis.conf(源码安装时的常见位置)如果您不确定配置文件的位置,......
  • 宝塔错误信息 php未安装redis扩展
    当宝塔面板提示“php未安装redis扩展”时,说明你的PHP环境中缺少Redis扩展。你可以按照以下步骤来安装和启用Redis扩展:1.安装Redis扩展通过宝塔面板安装登录宝塔面板:打开浏览器,输入宝塔面板的地址和端口,登录宝塔面板。进入软件商店:点击左侧菜单栏的“软件商店”。......
  • 2024年最新互联网大厂精选 Java 面试真题集锦(JVM、多线程、MQ、MyBatis、MySQL、Redis
    前言春招,秋招,社招,我们Java程序员的面试之路,是挺难的,过了HR,还得被技术面,在去各个厂面试的时候,经常是通宵睡不着觉,头发都脱了一大把,还好最终侥幸能够入职一个独角兽公司,安稳从事喜欢的工作至今...近期也算是抽取出大部分休息的时间,为大家准备了一份通往大厂面试的小捷径,准备......
  • redis高级篇之IO多路复用select方法简介 第174节答疑
    1、bitmap最大1024位,一个进程最多只能处理1024个客户端2、&rset不可重用,每次socket有数据就相应的位会被置位3、文件描述符数组拷贝到了内核态(只不过无系统调用切换上下文的开销。(内核层可优化为异步事件通知)),仍然有开销。select调用需要传入fd数组,需要拷贝一份到内核,高......