Redis 是一个开源(BSD许可)使用C语言编写的基于内存的NoSQL数据库,它是目前最流行的键值对存储数据库。可以用作数据库、缓存和消息中间件。与其他NoSQL数据库不同,它的value类型不仅仅是String,还可以是其他的类型,它支持列表、集合、有序集合、散列等。它除了可以当中缓存,当配置持久化支持后,可以当NoSQL数据库使用。目前支持两种方式的持久化,分别是快照持久化和AOF持久化。另外,Redis可以搭建集群和主从复制结构,可以在高并发环境下有高可靠性。

步骤:

  • 拉取Redis5.0.5镜像。
docker pull redis:5.0.5
  • 创建Redis容器,并启动。
root@kgc-qg:/# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
redis               5.0.5               63130206b0fa        5 months ago        98.2MB
root@kgc-qg:/# docker run -d -p 6379:6379 --name myredis  63130206b0fa
9cb327cccebfab065a42628b660298ab69303649bfa8ed5b387bb6ab9be63fb7

首先安装前,需要知道Image ID,所以先查询镜像,然后开始安装,-d表示后台启动,-p是端口映射,前面是宿主机的端口,后面是容器的端口,我们都写出6379,--name是安装后redis的别名,最后面的是Image ID。

root@kgc-qg:/# docker ps 
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
9cb327cccebf        63130206b0fa        "docker-entrypoint.s…"   7 seconds ago       Up 4 seconds        0.0.0.0:6379->6379/tcp   myredis

这里的命令,docker ps是查看所以容器的状态,可以看到up,说明redis容器启动了。

  • 安装Redis图形用户界面客户端,方便进行查看和操作。

    • A、到网上下载redis-desktop-manager-0.8.8.384.exe可视化工具。
    • B、启动可视化工具,配置连接信息,并测试连接。

dd

当我们把环境安装好,现在就带着大家在Spring Boot下面进行整合,其他非常简单。我们只需要添加spring-boot-starter-redis依赖即可。

  • 1)创建Spring Boot工程chapter-redis.添加依赖。

特别说明,在Spring Boot 2.1.5之后(包括)必须添加Spring Security依赖。

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-data-redis</artifactId>
          <exclusions>
              <exclusion>
                  <groupId>io.lettuce</groupId>
                  <artifactId>lettuce-core</artifactId>
              </exclusion>
          </exclusions>
</dependency>
      <dependency>
          <groupId>redis.clients</groupId>
          <artifactId>jedis</artifactId>
      </dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Jedis是Redis官方推荐的Java连接开发工具,优点类似于JDBC,我们通过Java代码操作redis,可以使用lettuce和jedis。这里需要说明的是在spring-boot-starter-redis中,默认使用的是lettuce而不是jedis,考虑到很多的公司和个人对于jedis相对来讲比较熟悉,我们在这里排除掉了lettuce,又添加了jedis依赖。

  • 2)在application.properties中配置redis的相关属性。
spring.redis.port=6379
spring.redis.database=0
spring.redis.host=192.168.21.134

spring.redis.jedis.pool.max-active=8
spring.redis.jedis.pool.max-idle=8
spring.redis.jedis.pool.max-wait=-1ms
spring.redis.jedis.pool.min-idle=0

前面三行的配置分别配置的redis的端口,数据库以及主机地址。这里的地址是Linux宿主机的地址。后面四行的意思是最大连接数、最大空闲连接数、最大阻塞等待时间,-1表示没有限制、最小空闲连接数。

  • 3)创建实体类Book
package com.java.chapter.entity;
import java.io.Serializable;

public class Book implements Serializable {
    private Integer id;
    private String name;
    private String author;
    private Double price;
//getter和setter省略
}

对于对象一定要实现Serializable接口,否则序列化的时候会出现异常。

  • 4)创建BookController。
@RestController
@RequestMapping("/book")
public class BookController {
    @Autowired
    StringRedisTemplate stringRedisTemplate;
    @Autowired
    RedisTemplate redisTemplate;
    @GetMapping("/set1")
    public void set1(){
        Book book=new Book();
        book.setAuthor("罗贯中");
        book.setId(1);
        book.setName("三国演义");
        book.setPrice(67.5);
        ValueOperations ops = redisTemplate.opsForValue();
        ops.set("book",book);
    }
    @GetMapping("/get1")
    public Book get1(){
        ValueOperations ops = redisTemplate.opsForValue();
        Book book = (Book) ops.get("book");
        return book;
    }
    @GetMapping("/set2")
    public void set2(){
        ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();
        ops.set("name","kgc");
    }
    @GetMapping("/get2")
    public String get2(){
        ValueOperations<String, String> ops = stringRedisTemplate.opsForValue();
        return ops.get("name");
    }
}
  • 5)测试。

启动后,在控制台有随机的密码,方便登录的时候使用。默认的用户名是user。

A、在浏览器中输入http://locahost:8080/book/set1

B、在浏览器中输入http://locahost:8080/book/get1

C、在浏览器中输入http://locahost:8080/book/set2

D、在浏览器中输入http://locahost:8080/book/get2

文章名: Spring Boot 整合Redis
文章链接:https://sjl511.cn/26.html
版权声明:版权归苏里,转载时请注明本文出处及文章链接。
最后修改:2020 年 06 月 04 日 05 : 54 PM
谢谢饲主了~~喵