我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Redis怎么存储对象

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Redis怎么存储对象

这篇“Redis怎么存储对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis怎么存储对象”文章吧。

Redis存储对象

首先引入依赖

        <dependency>            <groupId>redis.clients</groupId>            <artifactId>jedis</artifactId>            <version>3.2.0</version>        </dependency>

创建一个Jedis实例

package com.xiateng.util;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig; public class JedisUtil {     private static JedisPool jedisPool;    private static final Logger logger = LoggerFactory.getLogger(JedisUtil.class);     static {        // 初始化连接池        JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();        jedisPoolConfig.setMaxTotal(20);        jedisPoolConfig.setMaxIdle(10);        jedisPool = new JedisPool(jedisPoolConfig, "127.0.0.1", 6379);        logger.info("jedisPool连接池初始化====" + jedisPool);    }         public synchronized static Jedis getJedis(){        Jedis jedis = jedisPool.getResource();//        jedis.auth("123456");//密码        return jedis;    }}

下面我们来实现存储对象

方式一:将对象转化为JSON字符串存入redis

Jedis jedis = JedisUtil.getJedis();TUser tUser = new TUser();tUser.setUserName("你好");tUser.setPassword("2342342");jedis.set("xiateng", JSON.toJSONString(tUser)); String sss = jedis.get("xiateng");TUser ssss = JSON.parseObject(sss,TUser.class);jedis.del("xiateng");System.out.println("---------------------------:  "+ssss.toString());

方式二:将对象序列化后存到redis

封装序列化跟反序列化方法

package com.xiateng.util; import java.io.*; public class SerializeUtil {         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 (IOException 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 (IOException e) {            e.printStackTrace();        } catch (ClassNotFoundException e) {            e.printStackTrace();        }         return null;    }}

保存对象

Jedis jedis = JedisUtil.getJedis();      jedis.set("code".getBytes(), SerializeUtil.serialize(tUser));byte[] bytes = jedis.get("code".getBytes());TUser o = (TUser)SerializeUtil.unSerialize(bytes);jedis.del("code");System.out.println(o.toString());

方式三:将对象用Hash数据类型存储

Jedis jedis = JedisUtil.getJedis();jedis.hset("user", "id", "3");jedis.hset("user", "name", "xiateng");jedis.hset("user", "password", "123455");jedis.hget("user","id");List<String> user = jedis.hmget("user", new String[]{"id","name","password"});System.out.println("---------------------------:  "+user); // 输出结果 [3,xiateng,123455]

注意:以序列化的方式存储的对象需要实现 Serializable 接口

Redis可以存储java对象吗

答案:是可以

但是你对象必须要序列化。

redis没有办法把一个没有序列化的对象存储到redis中。

package com.kuangstudy.entiy;import lombok.Data;public class User implements java.io.Serializable{    private Integer id;    private String nickname;    private String password;    public Integer getId() {        return id;    }    public void setId(Integer id) {        this.id = id;    }    public String getNickname() {        return nickname;    }    public void setNickname(String nickname) {        this.nickname = nickname;    }    public String getPassword() {        return password;    }    public void setPassword(String password) {        this.password = password;    }}

这样太麻烦了,并且存储中文会有乱码,那如何解决呢?只能重新定义一个redisTemplate

package com.kuangstudy.config;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.connection.RedisConnectionFactory;import org.springframework.data.redis.core.RedisTemplate;import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;import org.springframework.data.redis.serializer.StringRedisSerializer;@Configurationpublic class RedisConfiguration {        @Bean    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();        redisTemplate.setConnectionFactory(redisConnectionFactory);        // 创建一个json的序列化方式        GenericJackson2JsonRedisSerializer jackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();        // 设置value用jackjson进行处理        redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);        // 设置key用string序列化方式        redisTemplate.setKeySerializer(new StringRedisSerializer());        redisTemplate.setHashKeySerializer(new StringRedisSerializer());        redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);        redisTemplate.afterPropertiesSet();        return redisTemplate;    }}

以上就是关于“Redis怎么存储对象”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Redis怎么存储对象

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Redis怎么存储对象

这篇“Redis怎么存储对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis怎么存储对象”文章吧。Redis存储对象
2023-07-02

redis怎么存储java对象

正文Redis支持存储复杂对象,包括Java对象。序列化和使用第三方库是两种主要方法:序列化:将Java对象转换为字节数组,简单高效,但无法直接访问。第三方库:使用库(如Jedis/Lettuce)将对象转换为Redis数据类型(如JSON),提供更灵活的访问。选择方法取决于对象的特点和访问需求。序列化适合快速访问和简单存储,而第三方库适合复杂操作和直接访问。使用合适的Redis数据类型、格式和命名约定,并监控性能以确保最佳实践。
redis怎么存储java对象
2024-04-13

redis怎么直接存储对象

redis 可以直接存储对象,使用 redis om、json 或序列化库等方式实现。这提供了简化复杂性、提高性能和可扩展性的优点,但也会增加内存消耗和潜在的序列化开销。Redis 如何直接存储对象Redis 是一个流行的键值数据库,通常
redis怎么直接存储对象
2024-05-21

redis怎么使用hash存储java对象

你可以使用Redis的Hash数据结构来存储Java对象。在Java中,你可以将对象转换为JSON格式,然后将JSON字符串存储在Redis的Hash中。首先,你需要确保你的Java对象能够被转换为JSON字符串。你可以使用任何JSON库
redis怎么使用hash存储java对象
2024-04-09

redis怎么使用hash存储java对象

利用RedisHash存储Java对象,通过序列化将对象转换为字节数组,并按键-值对存储在Hash中。优点包括快速检索、数据组织和空间优化。注意事项涉及序列化大小、数据完整性和数据过期。替代方案包括字符串、列表和集合,具体选择取决于需求和性能要求。
redis怎么使用hash存储java对象
2024-04-11

Redis如何存储对象

目录Redis存储对象首先引入依赖创建一个Jedis实例方式一:将对象转化为jsON字符串存入redis方式二:将对象序列化后存到redis方式三:将对象用Hash数据类型存储Redis可以存储java对象吗答案:是可以Redis存储对象
2022-06-16

redis如何存储list对象

在Redis中,可以使用列表数据结构存储list对象。Redis中的列表是一种有序的字符串列表,可以按照插入顺序存储多个字符串。以下是使用Redis存储list对象的一些常用命令:1. LPUSH:将一个或多个值插入到列表的头部- 示例:L
2023-09-11

redis存储对象方法的比较

本篇内容主要讲解“redis存储对象方法的比较”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis存储对象方法的比较”吧!redis 存储对象的方法对比问题背景:原来项目里面全部是直接red
2023-06-20

Java大对象怎么存Redis

Java大对象可通过分片或RedisModules存储在Redis中。分片将大对象分解为更小的块,提高可扩展性和并行处理。RedisModules(如RedisJSON、RedisBloom和RedisGraph)提供高级功能,如JSON查询和图分析。选择合适的方法取决于大对象性质和用例,并应遵循最佳实践,如压缩、过期时间和监控。
Java大对象怎么存Redis
2024-04-02

SpringBoot怎么整合Redis实现序列化存储Java对象

今天小编给大家分享一下SpringBoot怎么整合Redis实现序列化存储Java对象的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解
2023-07-05

VB.NET中怎么实现对象存储

本篇文章为大家展示了VB.NET中怎么实现对象存储,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。VB.NET对象存储采用BinaryFormatte以二进制的形式,或者用SoapFormatter类
2023-06-17

PHP怎么存储和获取对象

在PHP中,对象可以使用序列化和反序列化来存储和获取。序列化是指将对象转换为字符串的过程,反序列化是指将字符串转换回对象的过程。存储对象:// 创建一个对象$obj = new stdClass();$obj->name = &#x
PHP怎么存储和获取对象
2024-04-29

java对象怎么缓存到Redis中

Java对象缓存到Redis将Java对象缓存到Redis可以提升应用程序性能。步骤如下:存储对象:序列化对象。连接到Redis服务器。使用SET命令存储序列化后的对象,并设置过期时间(可选)。获取对象:连接到Redis服务器。使用GET命令获取序列化后的对象。反序列化对象。注意事项:序列化/反序列化的开销。数据一致性。大小限制。安全考虑。最佳实践:仅缓存频繁访问的对象。
java对象怎么缓存到Redis中
2024-04-02

对象存储有什么用?

对象存储使用对象来存储数据。与文件存储(使用分层结构存储文件)或块存储(将文件分成大小相等的块)相比,对象存储将元数据与对象一起存储。

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录