美文网首页
redis热点数据储存,加快访问数据库中的数据

redis热点数据储存,加快访问数据库中的数据

作者: 祝家庄打烊 | 来源:发表于2024-04-14 18:07 被阅读0次

实体类序列化,便于redis储存(UserEntity)

实体类序列化

在service层进行redis存储(UserService)

package com.example.demo.service;

import com.example.demo.entity.UserEntity;
import com.example.demo.mapper.UserMapper;
import com.example.demo.mapper.UserMapperZs;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.serializer.RedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;
import org.springframework.stereotype.Service;
import org.springframework.data.redis.core.RedisTemplate;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    @Autowired
    private UserMapperZs userMapperZs;
    @Autowired
    private RedisTemplate<Object, Object> redisTemplate;
    public UserEntity findById(int id){
        return userMapper.findById(id);
    }
    public Object findByIdZs(int id){
        RedisSerializer redisSerializer = new StringRedisSerializer();
        redisTemplate.setKeySerializer(redisSerializer);
        Object userList = redisTemplate.opsForValue().get("userList");
        System.out.println("userList");
        System.out.println(userList);
        if(null == userList){
            synchronized (this){
                if(null == userList){
                    System.out.println("从mysql中查询数据中。。。。。。");
                    // 从数据库中查询数据
                    userList = userMapperZs.findById(id);
                    System.err.println(userList);
                    System.out.println("返回數據1");
                    // 放入redis
                    redisTemplate.opsForValue().set("userList",userList);
                    System.out.println("返回數據2");
                }
            }
        }else{
            System.out.println("从redis中查询数据中。。。。。。");
        }
        System.out.println("返回數據3");
        return userList;
    }
}

注意当前表有更改,记住删除redis缓存中的该字段

相关文章

  • 布隆过滤器

    一、缓存穿透 项目中的热点数据我们一般会放在 redis 中,在数据库前面加了一层缓存,减少数据库的访问,提升性能...

  • web信息泄露

    1.redis数据库任意访问 简介 redis默认数据库端口6379, 未设置密码造成任意访问,然后使用redis...

  • Redis面试题复习

    Redis面试题汇总 使用Redis的好处? key-value 形式的内存数据库。 数据访问在内存中,访问速度快...

  • Redis 缓存穿透,缓存击穿,缓存雪崩

    Redis 最常用的工能就是作为缓存使用, 我们可以把热点数据保存在redis数据库中,以此来减轻关系型数据库的压...

  • redis知识点

    Redis redis介绍 Redis是一个开源的,内存中数据结构储存系统,它可用作数据库、缓存和消息中间件。它支...

  • 租房网站实战

    技术栈: 基于MVC框架:1.Model:数据库身份,Mysql储存基本数据,Fastdfs储存图片,Redis设...

  • 阿里云redis rinetd 配置

    阿里云数据库 Redis 需要通过 ECS 的内网进行连接访问,如果您本地需要通过公网访问云数据库 Redis,可...

  • Redis底层运行详解即各个数据类型的应用场景

    Redis进阶(原创理解) C语言编写实现 非关系型键值对数据库 数据储存在内存中(需保证持久化) Redis k...

  • 对Redis缓存架构的简单理解

    由于Redis为内存型数据库,而MySQL等常用关系型数据库是存在磁盘中,需要有I/O操作。为了提高数据库访问效率...

  • redis存取

    Redis的数据库 Redis 对数据库进行了抽象,在 Redis 源码中,承担数据库角色的叫 redisDb。 ...

网友评论

      本文标题:redis热点数据储存,加快访问数据库中的数据

      本文链接:https://www.haomeiwen.com/subject/asyrxjtx.html