redis如何实现保存对象

 更新时间:2022年06月16日 14:32:15   作者:洛阳纸贵  
这篇文章主要介绍了redis如何实现保存对象,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

redis保存对象

redis数据结构

  • String——字符串
  • Hash——字典
  • List——列表
  • Set——集合
  • Sorted Set——有序集合
redisTemplate.opsForValue();//操作字符串
redisTemplate.opsForHash();//操作hash
redisTemplate.opsForList();//操作list
redisTemplate.opsForSet();//操作set
redisTemplate.opsForZSet();//操作有序set

保存对象

RedisConfig.java 

package com.wj.demo.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;
 
@Configuration
public class RedisConfig {
 
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {  
        RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();  
        template.setConnectionFactory(redisConnectionFactory);
        template.setKeySerializer(new StringRedisSerializer());
        template.setValueSerializer(new GenericJackson2JsonRedisSerializer());
        template.setHashKeySerializer(new GenericJackson2JsonRedisSerializer());
        template.setHashValueSerializer(new GenericJackson2JsonRedisSerializer());
        template.afterPropertiesSet();  
        return template;  
    }
} 

测试成功。

redis存放对象的两种方式

数据格式

  • 用户id为查找的key
  • 存储的value用户对象包括姓名,年龄,生日等等
  • 如果用普通的key-value结构来存储,主要有以下2种方式存储

方式一(String)

这种方式是使用list或者set这些来存储的,这样的方式其实也可以达到我们想要的效果,但是因为每次修改属性都需要三步走,性能开销非常大。1.先反序列化;2,修改;3.序列化

方式二(hash)

这种方式其实也有两种写法

写法一:

这种写法不仅能够达成目标,而且解决了资源消耗过大的问题,但是也引起了另一个问题,就是用户的id数据冗余

写法二:

通过key(用户id)+field(属性标签)可以操作对应属性数据了,既不需要重复存储数据,也不会带来序列化和并修复操控的问题

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Redis Cluster原理及配置详解

    Redis Cluster原理及配置详解

    这篇文章主要为大家介绍了Redis Cluster原理及配置详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-11-11
  • Win10配置redis服务实现过程详解

    Win10配置redis服务实现过程详解

    这篇文章主要介绍了Win10配置redis服务实现过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • Redis核心原理详细解说

    Redis核心原理详细解说

    这篇文章主要介绍了Redis核心原理详细解说,redis利用epoll实现IO多路复用,将连接信息和事件放到队列中,依次放到文件事件分派器,事件分派器将事件分发给事件处理器
    2022-07-07
  • redis启动失败问题之完美解决方案

    redis启动失败问题之完美解决方案

    这篇文章主要介绍了redis启动失败问题之完美解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-09-09
  • Redis Cluster集群收缩主从节点详细教程

    Redis Cluster集群收缩主从节点详细教程

    集群收缩的源端就是要下线的主节点,目标端就是在线的主节点,这篇文章主要介绍了Redis Cluster集群收缩主从节点详细教程,需要的朋友可以参考下
    2021-11-11
  • SpringSession通过Redis统计在线用户数量的实现代码

    SpringSession通过Redis统计在线用户数量的实现代码

    这篇文章主要介绍了SpringSession通过Redis统计在线用户数量,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-04-04
  • redis秒杀系统的实现

    redis秒杀系统的实现

    秒杀在很多活动大促中都可以用到,本文主要介绍了redis秒杀系统的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • Redis做预定库存缓存功能设计使用

    Redis做预定库存缓存功能设计使用

    这篇文章主要为大家介绍了Redis做预定库存缓存功能设计使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • 利用yum安装Redis的方法详解

    利用yum安装Redis的方法详解

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。这篇文章主要介绍的是利用yum安装Redis的方法,有需要的朋友们可以参考借鉴,下面来一起看看吧
    2016-11-11
  • 从原理到实践分析 Redis 分布式锁的多种实现方案

    从原理到实践分析 Redis 分布式锁的多种实现方案

    在分布式系统中,为了保证多个进程或线程之间的数据一致性和正确性,需要使用锁来实现互斥访问共享资源,然而,使用本地锁在分布式系统中存在问题,这篇文章主要介绍了从原理到实践分析 Redis 分布式锁的多种实现方案,需要的朋友可以参考下
    2024-07-07

最新评论