首页 > 数据库 >Redis 缓存

Redis 缓存

时间:2024-06-19 12:27:43浏览次数:15  
标签:缓存 Redis 配置 redis spring 序列化

文章目录

安装redis

下载地址:https://github.com/tporadowski/redis/releases 教程:https://blog.csdn.net/m0_62617719/article/details/131243067

启动redis

点击redis-server.exe,启动redis

知识加油站: 缓存:Redis可用作高性能缓存,提高应用程序的响应时间,减轻后端数据库的负担。 计数器和排行榜:用于跟踪计数、点赞、浏览次数等数据,以及构建排行榜和统计信息。 数据缓存预热:在系统启动时,将常用数据加载到Redis中,以提高应用程序的性能。 数据持久化:将Redis用作数据的快速缓存和数据持久化,以减少对慢速存储后端的访问。

简单使用redis

① 设置键值对 ② 取出键值对

关闭服务器端:在客户端中输入shutdown   关闭客户端:直接关闭或者输入exit

安装Redis-Desktop-Manager

详细介绍: https://blog.csdn.net/m0_62617719/article/details/131243067

配置pom文件

此处以Spring Boot项目为例,在已有的项目依赖当中再添加redis相关依赖

<!--整合redis-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

 配置application.properties

① 添加redis的配置:

# Redis 配置
spring.redis.database=0
spring.redis.port=6379
spring.redis.host=localhost
spring.redis.timeout=50000

# Lettuce 连接池配置
spring.redis.lettuce.pool.max-active=8
spring.redis.lettuce.pool.max-wait=-1
spring.redis.lettuce.pool.max-idle=8

配置Redis缓存管理器

在config包下新建RedisConfig.java

① RedisCacheConfiguration 配置:创建一个RedisCacheConfiguration 对象,其中配置了缓存时间(TTL,以秒为单位),禁用了缓存空值,以及序列化键和值。

② Jackson序列化:使用 Jackson2JsonRedisSerializer 来序列化缓存的值,以保留对象的结构。还对Jackson对象映射器进行了配置,以支持Java 8时间类型,并设置了一些基本属性,如日期格式等。

③ CacheManager 配置:通过 cacheManagerHour 和 cacheManagerDay 方法,分别创建了两个不同缓存时间的缓存管理器,分别为1小时和1天。这些缓存管理器使用相应的 RedisCacheConfiguration,并且具有不同的名字。

④ 键值序列化配置:通过 keyPair 和 valuePair 方法,配置了键和值的序列化方式。键使用 StringRedisSerializer 进行序列化,值使用 GenericJackson2JsonRedisSerializer 进行序列化。

 

配置service层 

 ① 在service层指定一个缓存的名称为 "user"

 

② @CacheConfig:指定缓存的名称为 "user",与缓存管理器中的配置保持一致。

③ @Cacheable:用于缓存用户信息,根据传入的user_name作为缓存键。如果缓存中已有相同user_name的用户信息,将从缓存中获取,否则将执行userMapper.queryUserByName(user_name)从数据库中获取数据。

④ @CachePut:用于更新用户信息,并将更新后的用户信息存储到缓存中。使用user.getId()作为缓存键。 ⑤ @CacheEvict:用于删除用户信息,根据传入的id从缓存中删除相应的数据。 

运行项目 

① 添加启动文件配置:

②启动redis服务器端

③运行http请求,查看RDM的缓存

 

标签:缓存,Redis,配置,redis,spring,序列化
From: https://blog.csdn.net/weixin_63831348/article/details/139798946

相关文章

  • redis——P2:对P1的思考
    到P1结束,redis都已经是一个不错的服务了,具体体现在缓存应用程序需要的数据,甚至在内存爆满的条件下还可以提供服务,似乎目的已经达成。但是实际上可能会遇到一些极端的情况,比如宕机。如果redis宕机了怎么办?目前所有的数据都存储在内存当中,宕机意为着失去所有缓存的数据。前面说过我......
  • redis——P3:持久化
    虽然缓存功能已经实现,但是作为对外提供服务的软件开发者,不能只关注是否提供了正确的服务,稳定和快速恢复等等指标是同样非常非常重要的。考虑这样一个问题,redis确实因为不可抗力宕机了(假设我喜欢黑框框打开,然后手贱按了^C),于是瞬间redis里所有缓存全没了?这对于一个追求高性能、高可......
  • redis——基础服务
    首先为什么要做一个redis出来?数据库不够用了吗?考虑到原本的应用程序是客户端访问服务端,服务端访问业务数据需要去数据库去拿,而数据库是个持久化的应用程序,是需要磁盘IO的,这就导致了速度会慢,并且如果存在大量的访问,会导致数据库崩溃。除去导致崩溃这样严重且极端的情况,这点性能虽然......
  • 认识Redis
    认识RedisRedis是目前最受欢迎的NoSQL数据库之一;db-engines排名上,所有数据库类型排名第六,键值对数据库排名第一。Redis是用C语言编写的开源、支持多种数据结构、支持网络、基于内存、可选持久性的键值对内存型数据库,具备以下特征:基于内存运行、效率高单线程运行支持分布式......
  • 【面试八股总结】Redis数据结构及底层实现
    一、五种基本数据结构        Redis提供了丰富的数据类型,常见的有五种数据类型:String(字符串),Hash(哈希),List(列表),Set(集合)、Zset(有序集合)结构类型结构可存储值结构读写能力使用命令底层数据结构String字符串、整数或浮点数对字符串或字符串的一部分进行操作,对整数或浮点......
  • 采用java语言+Redis+RabbitMQ开发的 门诊his系统源码 一站式的门诊his系统 门诊业务流
    采用java语言+Redis+RabbitMQ开发的门诊his系统源码一站式的门诊his系统门诊业务流程医院信息系统(HIS系统)门诊业务是医院信息化建设的重要组成部分之一,它涵盖了医院门诊部门涉及的各项业务。HIS系统门诊业务的实施,可以实现医院门诊业务的信息化管理和数据化处理,提高医疗服......
  • 缓存常见三大问题
    一、缓存穿透大量查询访问一个缓存中不存在的key,导致大量请求直接查询到数据库,这种查询不存在的缓存数据就叫做缓存穿透。解决:使用布隆过滤器,将所有有效的key缓存到一个集合中,不存在的key,直接返回空。二、缓存击穿大量访问查询刚好缓存失效的key,那么刚好全部请求只能请求到......
  • 探索Redis的运行情况和数据——一次有趣的Redis旅程【GPT生成】
    探索Redis的运行情况和数据——一次有趣的Redis旅程前言Redis,一个高性能的键值对数据库,广泛应用于缓存、会话管理和实时数据处理。如果你正在使用Redis,你可能会好奇如何检查它的运行情况,以及它究竟存储了哪些数据。在这篇博客中,我将带你一起使用Xshell连接到服务器,探索Redis的奥......
  • Redis常见数据类型及其常用命令详解
    文章目录一、Redis概述二、Redis常用命令1.通用命令1.1KEYS:查看符合模板的所有key1.2DEL:删除一个指定的key1.3EXISTS:判断key是否存在1.4EXPIRE:给一个key设置有效期,有效期到期时该key会被自动删除1.5TTL:查看一个key的剩余有效期1.6COPY:复制Redis数据库......
  • Windows 中的 csc 服务是指 "Client Side Caching",即客户端缓存服务。这个服务主要用
    Windows中的csc服务是指"ClientSideCaching",即客户端缓存服务。这个服务主要用于离线文件和文件夹的同步,特别是在使用“离线文件”功能时。下面是关于csc服务的一些介绍:功能:csc服务允许用户在离线状态下访问网络共享文件和文件夹。当用户连接到网络时,csc服务会自动将......