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.128
    port: 6379
    password: 123
    database: 0
    pool:
     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
     */
    @Bean
    public 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

    @Autowired
    RedisTemplate 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 {

    @Autowired
    RedisTemplate 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 

Spring Boot项目中使用Redis,需要添加Spring Boot Data Redis依赖项,可以在pom.xml文件中添加以下代码: ```xml <!-- Spring Boot Data Redis依赖项,用于实现Redis编程 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> ``` 为了连接Redis,可以在application.properties或application.yml文件中配置Redis的连接信息,包括主机地址、端口号、密码等。例如: ```yaml spring: redis: host: r-7xvnzvfphwycfwzzi7pd.redis.rds.aliyuncs.com # 公网地址 port: 6379 # 端口号 password: admin:admin # 账号:密码 client-type: jedis # 切换客户端为 jedis 或者 lettuce ``` 在Spring项目中,可以使用Spring Data Redis来简化Redis操作。Spring Data Redis提供了一个高度封装的类:RedisTemplate,它对Jedis客户端中大量API进行了归类封装,将同一类型的操作封装为操作接口。可以在代码中使用RedisTemplate来进行Redis操作。例如: ```java ValueOperations<String, String> operations = redisTemplate.opsForValue(); operations.set("hello", "world"); String hello = operations.get("hello"); System.out.println("hello: " + hello); ``` 需要注意的是,如果想使用Jedis客户端,还需要添加Jedis依赖项。可以在pom.xml文件中添加以下代码: ```xml <!-- jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> </dependency> ``` 以上就是在Spring Boot项目中使用Redis的一般结构和配置方式。可以根据具体需求和项目情况进行相应的调整和扩展。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [springboot项目使用Redis](https://blog.csdn.net/d_liangzai/article/details/131427922)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [SpringBoot项目进行Redis配置](https://blog.csdn.net/weixin_45003524/article/details/125226175)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [springboot整合Redis](https://download.csdn.net/download/weixin_45915206/86394428)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值