zoukankan      html  css  js  c++  java
  • Springboot 连接 使用 Redis Example

    通过一个简单的例子使用Springboot 连接并使用Redis。 本文假设已经安装好Redis。

    1.首先将URL转换为一个ID ,并使用 StringRedisTemplate 将ID 和 URL 保存到Redis

    2. 根据ID 从Redis中获取对应的URL

    项目结构如下

    POM文件

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.0.1.RELEASE</version>
            <relativePath /> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.example</groupId>
        <artifactId>redis-shorterurl</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>redis-shorterurl</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-redis</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <!-- https://mvnrepository.com/artifact/commons-validator/commons-validator -->
            <dependency>
                <groupId>commons-validator</groupId>
                <artifactId>commons-validator</artifactId>
                <version>1.6</version>
            </dependency>
            
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>18.0</version>
            </dependency>
    
    
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>

     以及Java文件

    package com.example.redisshorterurl;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    @SpringBootApplication
    public class RedisShorterurlApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(RedisShorterurlApplication.class, args);
        }
    
    }
    package com.example.redisshorterurl;
    
    import java.nio.charset.StandardCharsets;
    
    import org.apache.commons.validator.routines.UrlValidator;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.redis.core.StringRedisTemplate;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.PostMapping;
    import org.springframework.web.bind.annotation.RequestBody;
    import org.springframework.web.bind.annotation.RestController;
    
    import com.google.common.hash.Hashing;
    
    @RestController
    public class URLShorterResource {
    
        @Autowired
        StringRedisTemplate redisTemplate;
        
    
        @GetMapping("URL/{id}")
        public String getUrl(@PathVariable String id) {
        String url =  redisTemplate.opsForValue().get(id);
        System.out.println("URL Retrieved: " + url);
    
            if (url == null) {
                throw new RuntimeException("There is no shorter URL for : " + id);
            }
            return url;
        }
    
        @PostMapping("/create")
        public String create(@RequestBody String url) {
        UrlValidator urlValidator = new UrlValidator(new String[] { "http", "https" });
        if (urlValidator.isValid(url)) {
            String id = Hashing.murmur3_32().hashString(url, StandardCharsets.UTF_8).toString();
            System.out.println("URL ID generated:" + id);
            redisTemplate.opsForValue().set(id, url);
            return id;
        }
         throw new RuntimeException("URL Invalid: " + url);
    
        }
    
    }

    application.properties 

    之后启动Redis server

     启动Springboot Application.

    此时,可以用Postman测试效果。

    首先, 使用 HTTP POST method 根据URL 生成一个 ID 

    之后,使用 ID  获取对应的 URL

  • 相关阅读:
    Web前端学习第三天·fighting_常用的一些标签(一)
    Web前端学习第七天·fighting_CSS样式的编写和使用(二)
    Web前端学习第八天·fighting_使用CSS美化文字(一)
    WPF 自定义RadioButton样式
    WPF自定义控件与样式自定义按钮(Button)
    WPF 自定义Calendar样式(日历样式,周六周日红色显示)
    WPF 自定义TextBox带水印控件,可设置圆角
    WPF 自定义CheckBox样式
    常见web UI 元素操作 及API使用
    selenium定位下拉框
  • 原文地址:https://www.cnblogs.com/luffystory/p/10740641.html
Copyright © 2011-2022 走看看