redis的使用

添加依赖

/pom.xml 文件中写入以下代码

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>

redis连接配置

/src/main/resources/application.yml 文件中写入以下代码

spring:
  # Redis 配置
  redis:
    # Redis 服务器地址
    host: localhost
    # Redis 端口(默认6379)
    port: 6379
    # 密码(如果没设置密码,注释掉这行)
    password:
    # 数据库索引(默认0,Redis 有16个数据库,0-15)
    database: 0
    # 连接超时时间
    timeout: 10000ms
    # 连接池配置(推荐配置,避免频繁创建连接)
    lettuce:
      pool:
        # 最大活跃连接数
        max-active: 8
        # 最大空闲连接数
        max-idle: 8
        # 最小空闲连接数
        min-idle: 0
        # 最大等待时间(-1 表示无限制)
        max-wait: -1ms

Redis 配置类 RedisConfig.java

/src/main/java/com/example/xys1/config/RedisConfig.java 文件中写入以下代码

package com.example.xys1.config;

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.GenericJackson2JsonRedisSerializer;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
public class RedisConfig {
    /**
     * 自定义 RedisTemplate,使用 JSON 序列化
     */
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {
        // 创建 RedisTemplate 对象
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
        // 设置连接工厂
        redisTemplate.setConnectionFactory(connectionFactory);

        // 配置序列化器(解决乱码问题)
        // 1. 字符串序列化器(key 和 hash key 使用)
        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
        // 2. JSON 序列化器(value 和 hash value 使用)
        GenericJackson2JsonRedisSerializer jsonRedisSerializer = new GenericJackson2JsonRedisSerializer();

        // 设置 key 的序列化方式
        redisTemplate.setKeySerializer(stringRedisSerializer);
        // 设置 hash key 的序列化方式
        redisTemplate.setHashKeySerializer(stringRedisSerializer);
        // 设置 value 的序列化方式
        redisTemplate.setValueSerializer(jsonRedisSerializer);
        // 设置 hash value 的序列化方式
        redisTemplate.setHashValueSerializer(jsonRedisSerializer);

        // 初始化 RedisTemplate
        redisTemplate.afterPropertiesSet();
        return redisTemplate;
    }
}

使用redis

/src/main/java/com/example/xys1/controller/XysController.java 文件中写入以下代码

package com.example.xys1.controller;

import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import javax.annotation.Resource;
import java.util.HashMap;
import java.util.Map;

// 标识为控制器,且所有方法返回值直接转为 JSON(无需视图解析)
@RestController
@RequestMapping("/xys")
public class XysController {
    @Resource
    private RedisTemplate<String, Object> redisTemplate;


    @PostMapping("/test3")
    public Map<String, Object> test3() {
        redisTemplate.opsForValue().set("aaa", "i-am-aaa");
        Map<String, Object> result = new HashMap<>();
        result.put("name", "/xys/test3");
        return result;
    }

    @PostMapping("/test4")
    public Map<String, Object> test4() {
        Map<String, Object> result = new HashMap<>();
        result.put("name", "/xys/test4");
        result.put("aaa-value", redisTemplate.opsForValue().get("aaa"));
        return result;
    }
}

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容