SpringBoot整合Redis快速入门

SpringBoot整合Redis

1.导入依赖

1.1 导入SpringBoot的基础相关依赖

 <parent>
     <groupId>org.springframework.boot</groupId>
     <artifactId>spring-boot-starter-parent</artifactId>
     <version>2.0.5.RELEASE</version>
</parent>

<dependencies>
    <!-- springBoot支持 web基础依赖-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!--测试依赖导入-->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

1.2 导入Redis依赖

<!--spirngboot springdata对redis支持-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

2.applciation中配置Redis

spring:
  application:
    name: RedisApplication
  redis:
    database: 0 # 数据库索引
    host: 127.0.0.1 # 服务器地址
    port: 6379 # 服务器端口
    password: 123456 # 服务器连接密码
    jedis:
      pool:
        max-wait: 2000ms # 阻塞最大等待时间
        min-idle: 2 # 最小空闲连接
        max-idle: 8 # 最大空闲连接

3.Redis的基础操作

Springboot Spring data redis简化了redis的配置,操作。

将对象的状态信息转为存储或传输的形式需要序列化。需要框架支持序列化dataRedis已经实现了,只需要让需要保存的对象实现序列化接口Serializable

@Data
public class User implements Serializable {
    
     // 序列化对象
    private Long id;
    private String name;
}

3.1 Redis中添加新的值

@SpringBootTest(classes = RedisApplciation.class)
@RunWith(SpringRunner.class)
public class RedisTest {
    
    
    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void testAdd() {
    
    
        // first是存入redis中的key值,User是对应的value
        redisTemplate.opsForValue().set("first", new User(1L, "王天霸"));
        Object first = redisTemplate.opsForValue().get("first");
        System.out.println(first);
    }
}

3.2 删除Redis中的值

@Test
public void testDelete() {
    
    
    // 根据key删除redisTemplate中的值
    Boolean bool = redisTemplate.delete("first");
    System.out.println(bool);
    Object first = redisTemplate.opsForValue().get("first");
    System.out.println(first);
}

4.持久化和淘汰策略

4.1 Redis 提供了两种不同级别的持久化方式

RDB和AOF,可以通过修改redis.conf来进行配置。

1)RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照,默认开启该模式.

2)AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集,默认关闭该模式。

4.2 淘汰策略

volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最少使用的数据淘汰

volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过期的数据淘汰

volatile-random:从已设置过期时间的数据集(server.db[i].expires)中任意选择数据淘汰

allkeys-lru:从所有数据集(server.db[i].dict)中挑选最近最少使用的数据淘汰

allkeys-random:从所有数据集(server.db[i].dict)中任意选择数据淘汰

no-enviction(驱逐):禁止驱逐数据

redis 确定驱逐某个键值对后,会删除这个数据并,并将这个数据变更消息发布到本地(AOF 持久化)和从机(主从连接)。

Redis存放数据永远过期。 allkeys-lru

volatile-lru,volatile-ttl随意就OK

redis中还可以保存更多的其他结构,还可以对保存的数据排序等更多功能。这里只是简单的快速对Springboot整合Redis入门。

注意:以上所有的测试默认Redis下载配置完成,并开启redis—server。

Guess you like

Origin blog.csdn.net/qq_42859722/article/details/121866963