欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 幼教 > Redis学习以及SpringBoot集成使用Redis

Redis学习以及SpringBoot集成使用Redis

2024/10/24 17:28:06 来源:https://blog.csdn.net/2301_79263365/article/details/142300493  浏览:    关键词:Redis学习以及SpringBoot集成使用Redis

目录

一、Redis概述

二、Linux下使用Docker安装Redis

三、SpringBoot集成使用Redis

3.1 添加redis依赖 

3.2 配置连接redis

3.3 实现序列化

3.4 注入RedisTemplate

3.5 测试

四、Redis数据结构 


一、Redis概述

什么是redis?

redis 是一个高性能的,键值对的,将数据存储在内存中的非关系型数据库。 

redis 也可以将数据持久化到硬盘上,此外 redis 也提供了丰富的数据结构存储数据。

redis 也可以用来当做数据库,可以存储一些简单的数据(例如点赞数量),缓存(秒杀的商品数量信息),消息中间件。

  • 高性能:数据存储在内存中,直接访问内存,性能极高,速度快。
  • 键值对:如 { id:1 , name:小林 , age:20 }
  • 非关系型:数据存储是键值对的,没有二维表关系,不使用sql操作。

redis的作用:使用 redis 作为缓存,将一些访问量大或者修改较少的数据使用 redis 存储起来,对mysql形成保护。

二、Linux下使用Docker安装Redis

 创建配置文件

mkdir -p /opt/redis/conf

创建数据的映射(数据卷) 

mkdir -p /opt/redis/data

拉取镜像 

docker pull redis:6.0 

安装

docker run -d -p 6379:6379 --name redis --restart=always  --privileged=true -v /opt/redis/conf/redis.conf:/etc/redis/redis.conf -v /opt/redis/data:/data redis:6.00

由于今年6月Docker Hub对国内的封锁,终止了对镜像仓库的访问和拉取。所以若拉取镜像失败,可以私信博主,通过加载本地镜像即可!

三、SpringBoot集成使用Redis

原理:使用Springboot 对 Jedis 的封装实现。

  1. 管理连接Redis对象,提供数据库连接池功能。

  2. 针对每种数据结构分别封装不同的实现类。

  3. 事务。

  4. 提供了对键,值进行序列化和反序列化操作。

3.1 添加redis依赖 

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

💥如图所示: 

3.2 配置连接redis

spring:redis:host: 192.168.31.128port: 6379password: 123database: 0pool:max-active: 8 #连接池最大连接数(使用负值表示没有限制)max-wait: -1ms #连接池最大阻塞等待时间(使用负值表示没有限制)max-idle: 8 #连接池中的最大空闲连接min-idle: 0 #连接池中的最小空闲连接timeout: 5000ms #连接超时时间(毫秒)

💥如图所示:

3.3 实现序列化

在config包下创建一个RedisConfig类,复制如下代码即可:

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.Jackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;@Configuration
public class RedisConfig {/*** 序列化键,值* @param connectionFactory* @return*/@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();redisTemplate.setConnectionFactory(connectionFactory);//序列化策略Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(Object.class);StringRedisSerializer redisSerializer = new StringRedisSerializer();redisTemplate.setKeySerializer(redisSerializer);//key 单一的字符串redisTemplate.setHashKeySerializer(redisSerializer);redisTemplate.setValueSerializer(jackson2JsonRedisSerializer);//value {}redisTemplate.setHashValueSerializer(jackson2JsonRedisSerializer);return redisTemplate;}
}

💥如图所示: 

3.4 注入RedisTemplate

    @AutowiredRedisTemplate redisTemplate;

💥如图所示: 

3.5 测试

我们临时在web层创建一个测试类,从前端发送请求进行测试:

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
@RequestMapping(path = "/redisCtl")
public class RedisTest {@AutowiredRedisTemplate redisTemplate;@RequestMapping(path = "/test1")public void test1(){ValueOperations valueOperations = redisTemplate.opsForValue();valueOperations.set("name", "jim");}}

💥如图所示:

💥从浏览器访问: 

💥键值添加成功! 

四、Redis数据结构 

5种基本常用结构

Redis中的键都是字符串类型,这里的数据结构指的是值的结构

redis常用的五种数据类型:string(字符串),hash(哈希),list(列表),set(无序集合)及zset(有序集合)。 

 

底层实现:



本次的分享就到此为止了,希望我的分享能给您带来帮助,创作不易也欢迎大家三连支持,你们的点赞就是博主更新最大的动力!如有不同意见,欢迎评论区积极讨论交流,让我们一起学习进步!有相关问题也可以私信博主,评论区和私信都会认真查看的,我们下次再见

 博主wx:g2279605572 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com