iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Redis怎么存储对象
  • 126
分享到

Redis怎么存储对象

2023-07-02 09:07:09 126人浏览 薄情痞子
摘要

这篇“Redis怎么存储对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis怎么存储对象”文章吧。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怎么存储对象”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: Redis怎么存储对象

本文链接: https://www.lsjlt.com/news/341184.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • Redis怎么存储对象
    这篇“Redis怎么存储对象”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Redis怎么存储对象”文章吧。Redis存储对象...
    99+
    2023-07-02
  • redis怎么使用hash存储java对象
    你可以使用Redis的Hash数据结构来存储Java对象。在Java中,你可以将对象转换为JSON格式,然后将JSON字符串存储在R...
    99+
    2024-04-09
    redis hash java
  • redis如何存储java对象
    redis存储java对象的方法:1、写一个java Bean,包含id和name两个字段,类名是Person。因为要实现序列化需求,所以该类实现Serializable接口。2、需要写一个序列化工具类,用于提供对象的序列化和反序列化的工作...
    99+
    2024-04-02
  • redis如何存储list对象
    在Redis中,可以使用列表数据结构存储list对象。Redis中的列表是一种有序的字符串列表,可以按照插入顺序存储多个字符串。以下...
    99+
    2023-09-11
    redis
  • redis存储对象方法的比较
    本篇内容主要讲解“redis存储对象方法的比较”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“redis存储对象方法的比较”吧!redis 存储对象的方法对比问题背景:原来项目里面全部是直接red...
    99+
    2023-06-20
  • redis 存储对象的方法对比分析
    redis 存储对象的方法对比 问题背景: 原来项目里面全部是直接redis存储对象的json数据,需要频繁的序列化和反序列化,后来考虑更换项目中的redis存储对象为hash对象存...
    99+
    2024-04-02
  • redis中list存储对象的方法
    小编给大家分享一下redis中list存储对象的方法,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!如果需要用到Redis存储Li...
    99+
    2024-04-02
  • SpringBoot怎么整合Redis实现序列化存储Java对象
    今天小编给大家分享一下SpringBoot怎么整合Redis实现序列化存储Java对象的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-07-05
  • Redis怎么实现保存对象
    本篇内容主要讲解“Redis怎么实现保存对象”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Redis怎么实现保存对象”吧! redi...
    99+
    2024-04-02
  • PHP怎么存储和获取对象
    在PHP中,对象可以使用序列化和反序列化来存储和获取。序列化是指将对象转换为字符串的过程,反序列化是指将字符串转换回对象的过程。 存...
    99+
    2024-04-29
    PHP
  • 对象存储和cdn怎么选择
    对象储存主要用来储存一些静态资源,而cdn主要应用于站点加速,提高静态数据的访问性能,使用户可就近获取所需内容,解决网络拥塞问题,提高网站响应速度和可用性,降低源站压力,网站静态数据之前一般是用文件存储的形式保存,现在则主要用对象存储,因此...
    99+
    2024-04-02
  • VB.NET中怎么实现对象存储
    本篇文章为大家展示了VB.NET中怎么实现对象存储,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。VB.NET对象存储采用BinaryFormatte以二进制的形式,或者用SoapFormatter类...
    99+
    2023-06-17
  • Redis如何存储对象与集合示例详解
    前言 大家都知道在项目中,缓存以及mq消息队列可以说是不可或缺的2个重要技术。前者主要是为了减轻数据库压力,大幅度提升性能。后者主要是为了提高用户的体验度,我理解的是再后端做的一个ajax请求(异步),并且...
    99+
    2024-04-02
  • Redis 存储对象信息用 Hash 和String的区别
    目录前言StringHashString 和 Hash 占用内存的比较网友讨论总结前言 Redis 内部使用一个 RedisObject 对象来表示所有的 key 和 value,R...
    99+
    2024-04-02
  • redis怎么将对象设置为缓存
    在Redis中,可以使用以下几种方法将对象设置为缓存:1. 将对象序列化为字符串:将对象转换为字符串,然后使用Redis的字符串数据...
    99+
    2023-09-06
    redis
  • Redis缓存-序列化对象存储乱码问题的解决
    使用Redis缓存对象会出现下图现象: 键值对都是乱码形式。 解决以上问题: 如果是xml配置的 我们直接注入官方给定的keySerializer,valueSerializer,...
    99+
    2024-04-02
  • hadoop数据怎么迁移至对象存储
    将Hadoop数据迁移至对象存储可以通过以下步骤实现: 确保您已经设置好了对象存储服务,并拥有相应的权限和凭证。 使用Hadoop...
    99+
    2024-04-11
    hadoop
  • JS中localStorage存储对象和sessionStorage存储数组对象的示例分析
    小编给大家分享一下JS中localStorage存储对象和sessionStorage存储数组对象的示例分析,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、前言最近在用angular做商...
    99+
    2024-04-02
  • redis如何保存java对象
    在redis中保存java对象的方法:1.利用序列化保存;2.利用反序列化保存;在redis中保存java对象的方法有序列化和反序列化两种利用序列化保存java对象baos = new ByteArrayOut...
    99+
    2024-04-02
  • 使用Redis存储序列化对象有哪些优缺点
    优点: 快速读写:Redis是内存数据库,读写速度非常快。 支持多种数据结构:Redis支持多种数据结构,可以存储各种类型的序列化...
    99+
    2024-04-29
    Redis
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作