Table of Contents
1. Introduction
There are three Java clients officially recommended by Reddis: Jedis, Lettuce, and Redisson.
3.1. Coordinate import
After creating the Spring Boot project, add
Other configurations such as MySQL are ignored here, and only the configuration information of Redis is highlighted
Use Specialized client interface operations to integrate Redis into Spring Boot. The RedisTemplate tool class is used here, which is provided by the SpringBoot framework.
Since the code is relatively private here (mainly because I am too lazy to sort out the login and verification code generation interfaces), I will directly use the test class for demonstration here. .
Home Database Redis How SpringBoot integrates Redis cache verification code

How SpringBoot integrates Redis cache verification code

May 27, 2023 pm 09:16 PM
redis springboot

1. Introduction

Redis is an open source (BSD licensed), in-memory data structure store, used as a database, cache, and message broker.

Translation: Redis is An open source in-memory data structure storage system that can be used as: database, cache and message middleware.

Redis is an open source high-performance key-value database developed in C language. The officially provided data can reach **100000** QPS.

QPS (Queries-per-second), the number of queries per second. (Baidu Encyclopedia)

It stores a rich set of value types and is also called a structured NoSQL database.

NoSQL (Not only SQL), not just SQL, refers to non-relational databases in general.

NoSQL database is not meant to replace relational databases, but to supplement them.

Relational Database (RDBMS)

  • MySQL

  • ##Oracle

  • DB2

  • ##SQL Server
  • Non-relational database (NoSQL)

    Redis
  • Mongo db
  • MemCached
  • Redis application scenario

    Cache
  • Task Queue
  • Message Queue
  • Distributed Lock
  • 2. Introduction

Spring integrates the Redis client and provides Spring Data Redis.

The Spring Boot project also provides a corresponding Starter, namely spring-boot-starter-data-redis.

Spring Data Redis is used directly here, and the download and installation process of Redis is not shown.

3. Preliminary configuration

3.1. Coordinate import

After creating the Spring Boot project, add

spring-boot-start-data to pom.xml -Dependency coordinates of redis

<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class='brush:php;toolbar:false;'>&lt;!--Spring Data Redis--&gt; &lt;dependency&gt; &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt; &lt;artifactId&gt;spring-boot-starter-data-redis&lt;/artifactId&gt; &lt;/dependency&gt;</pre><div class="contentsignin">Copy after login</div></div>3.2, Configuration file

Other configurations such as MySQL are ignored here, and only the configuration information of Redis is highlighted

spring:
# Redis configuration

redis:
host: localhost
port: 6379
#Decide according to the password you set
password: 123456
# Operate database No. 0, There are 16 databases by default
database: 0
jedis:
pool:
max-active: 8 # Maximum number of connections
max-wait: 1ms #Maximum blocking waiting time of the connection pool
max-idle: 4 # The maximum idle connection in the connection pool
min-idle: 0 # The minimum idle connection in the connection pool

3.3, Configuration class

Use Specialized client interface operations to integrate Redis into Spring Boot. The RedisTemplate tool class is used here, which is provided by the SpringBoot framework.

RedisTemplate will serialize key and value when processing them, which will cause some problems.

For example: the input key value is

city

, but the key value obtained by redis is \xac]xed\x00\x05t\x00\x04city. Therefore, a special configuration class is needed to specifically deal with the problems caused by RedisTemplate's default serialization processing.

It is worth noting that a new serializer is reloaded to replace the original serializer, which proves that it originally had its own default serializer JdkSerializationRedisSerializer.

/**
 * @classname RedisConfig
 * @description Redis配置类,更换key的默认序列化器
 * @author xBaozi
 * @date 19:04 2022/7/2
 **/
@Configuration
public class RedisConfig extends CachingConfigurerSupport {
    @Bean
    public RedisTemplate<Object, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
        RedisTemplate<Object, Object> redisTemplate = new RedisTemplate<>();
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        redisTemplate.setHashKeySerializer(new StringRedisSerializer());
        redisTemplate.setConnectionFactory(connectionFactory);
        return redisTemplate;
    }
}
Copy after login

4. Java operation Redis

Since the code is relatively private here (mainly because I am too lazy to sort out the login and verification code generation interfaces), I will directly use the test class for demonstration here. .

Send verification code

@PostMapping("/sendMsg")
public Result<String> sendMsg(@RequestBody User user, HttpSession session) {
    // 获取需要发送短信的手机号
    String userPhone = user.getPhone();
    if (StringUtils.isNotEmpty(userPhone)) {
        // 随机生成4位验证码
        String checkCode = ValidateCodeUtils.generateValidateCode4String(4);
        // 将生成的验证码保存到Redis中并设置有效期五分钟
        redisTemplate.opsForValue().set(userPhone, checkCode, 5, TimeUnit.MINUTES);
        return Result.success(checkCode);
    }
    return Result.error("短信发送错误");
}
Copy after login

How SpringBoot integrates Redis cache verification codeEnter verification code to log in

@PostMapping("/login")
public Result<User> login(@RequestBody Map map, HttpSession session) {
    log.info("map: {}", map);
    // 获取用户输入信息
    String phone = (String)map.get("phone");
    String code = (String)map.get("code");
    // 从Redis中取出验证码
    String checkCode = redisTemplate.opsForValue().get(phone);
    // 比对验证码是否一致
    if (StringUtils.isNotEmpty(checkCode) && checkCode.equals(code.toLowerCase())) {
        // 将用户id存放到session中
        session.setAttribute("user", user.getId());
        // 登录成功,删除Redis中的验证码
        redisTemplate.delete(phone);
        // 将用户信息返回到前端
        return Result.success(user);
    }
    return Result.error("登录失败,请检查手机号或验证码是否正确");
}
Copy after login

The above is the detailed content of How SpringBoot integrates Redis cache verification code. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to build the redis cluster mode How to build the redis cluster mode Apr 10, 2025 pm 10:15 PM

Redis cluster mode deploys Redis instances to multiple servers through sharding, improving scalability and availability. The construction steps are as follows: Create odd Redis instances with different ports; Create 3 sentinel instances, monitor Redis instances and failover; configure sentinel configuration files, add monitoring Redis instance information and failover settings; configure Redis instance configuration files, enable cluster mode and specify the cluster information file path; create nodes.conf file, containing information of each Redis instance; start the cluster, execute the create command to create a cluster and specify the number of replicas; log in to the cluster to execute the CLUSTER INFO command to verify the cluster status; make

How to clear redis data How to clear redis data Apr 10, 2025 pm 10:06 PM

How to clear Redis data: Use the FLUSHALL command to clear all key values. Use the FLUSHDB command to clear the key value of the currently selected database. Use SELECT to switch databases, and then use FLUSHDB to clear multiple databases. Use the DEL command to delete a specific key. Use the redis-cli tool to clear the data.

How to use the redis command How to use the redis command Apr 10, 2025 pm 08:45 PM

Using the Redis directive requires the following steps: Open the Redis client. Enter the command (verb key value). Provides the required parameters (varies from instruction to instruction). Press Enter to execute the command. Redis returns a response indicating the result of the operation (usually OK or -ERR).

How to read redis queue How to read redis queue Apr 10, 2025 pm 10:12 PM

To read a queue from Redis, you need to get the queue name, read the elements using the LPOP command, and process the empty queue. The specific steps are as follows: Get the queue name: name it with the prefix of "queue:" such as "queue:my-queue". Use the LPOP command: Eject the element from the head of the queue and return its value, such as LPOP queue:my-queue. Processing empty queues: If the queue is empty, LPOP returns nil, and you can check whether the queue exists before reading the element.

How to use redis lock How to use redis lock Apr 10, 2025 pm 08:39 PM

Using Redis to lock operations requires obtaining the lock through the SETNX command, and then using the EXPIRE command to set the expiration time. The specific steps are: (1) Use the SETNX command to try to set a key-value pair; (2) Use the EXPIRE command to set the expiration time for the lock; (3) Use the DEL command to delete the lock when the lock is no longer needed.

How to read the source code of redis How to read the source code of redis Apr 10, 2025 pm 08:27 PM

The best way to understand Redis source code is to go step by step: get familiar with the basics of Redis. Select a specific module or function as the starting point. Start with the entry point of the module or function and view the code line by line. View the code through the function call chain. Be familiar with the underlying data structures used by Redis. Identify the algorithm used by Redis.

How to solve data loss with redis How to solve data loss with redis Apr 10, 2025 pm 08:24 PM

Redis data loss causes include memory failures, power outages, human errors, and hardware failures. The solutions are: 1. Store data to disk with RDB or AOF persistence; 2. Copy to multiple servers for high availability; 3. HA with Redis Sentinel or Redis Cluster; 4. Create snapshots to back up data; 5. Implement best practices such as persistence, replication, snapshots, monitoring, and security measures.

How to use the redis command line How to use the redis command line Apr 10, 2025 pm 10:18 PM

Use the Redis command line tool (redis-cli) to manage and operate Redis through the following steps: Connect to the server, specify the address and port. Send commands to the server using the command name and parameters. Use the HELP command to view help information for a specific command. Use the QUIT command to exit the command line tool.

See all articles