当前位置: 首页 > news >正文

Redis-11.在Java中操作Redis-Spring Data Redis使用方式-环境搭建

一.导入Spring Data Redis的maven坐标

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

二.配置Redis数据源

application-dev.yml

sky:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    host: localhost
    port: 3306
    database: sky_take_out
    username: root
    password:
  alioss:
    endpoint: oss-cn-nanjing.aliyuncs.com
    bucket-name: sky-gjw-yhx
    access-key-secret: 211i17wVSrtaUvFc66aAxdvWmML8Lr
    access-key-id: LTAI5tS4c27CnefS3y1cccLR
  redis:
    host: localhost
    port: 6379
    auth: 123456
    database: 10

application.yml

server:
  port: 8080

spring:
  profiles:
    active: dev
  main:
    allow-circular-references: true
  datasource:
    druid:
      driver-class-name: ${sky.datasource.driver-class-name}
      url: jdbc:mysql://${sky.datasource.host}:${sky.datasource.port}/${sky.datasource.database}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
      username: ${sky.datasource.username}
      password: ${sky.datasource.password}
  servlet:
    multipart:
      max-file-size: 10MB
      max-request-size: 100MB
  redis:
    host: ${sky.redis.host}
    port: ${sky.redis.port}
    auth: ${sky.redis.password}
    database: ${sky.redis.database}

mybatis:
  #mapper配置文件
  mapper-locations: classpath:mapper/*.xml
  type-aliases-package: com.sky.entity
  configuration:
    #开启驼峰命名
    map-underscore-to-camel-case: true

logging:
  level:
    com:
      sky:
        mapper: debug
        service: info
        controller: info

sky:
  jwt:
    # 设置jwt签名加密时使用的秘钥
    admin-secret-key: itcast
    # 设置jwt过期时间
    admin-ttl: 7200000
    # 设置前端传递过来的令牌名称
    admin-token-name: token
  alioss:
    endpoint: ${sky.alioss.endpoint}
    access-key-id: ${sky.alioss.access-key-id}
    access-key-secret: ${sky.alioss.access-key-secret}
    bucket-name: ${sky.alioss.bucket-name}

三.编写配置类,创建RedisTemplate对象

首先创建Redis模板对象,设置redis连接工厂对象:redisTemplate.setConnectionFactory(redisConnectFactory);

设置redis key的序列化器:

redisTemplate.setKeySerializer(new StringRedisSerializer());

最后将RedisTemplate对象返回,后续我们就使用该RedisTemplate对象操作Redis数据库。

package com.sky.config;

import lombok.extern.slf4j.Slf4j;
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.StringRedisSerializer;

@Configuration
@Slf4j
public class RedisConfiguration {

    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        log.info("创建Redis模板对象...");
        RedisTemplate redisTemplate = new RedisTemplate();
        // 设置redis连接工厂对象
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        // 设置redis key的序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }
}

四.通过RedisTemplate对象操作Redis

package com.sky.test;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.*;

import java.util.concurrent.TimeUnit;

@SpringBootTest
public class SpringDataRedisTest {
    @Autowired
    private RedisTemplate redisTemplate;

    @Test
    public void testRedisTemplate() {
        System.out.println(redisTemplate);  // 首先输出redisTemplate对象看是否为空
        ValueOperations valueOperations = redisTemplate.opsForValue();  // redis当中的字符串类型数据操作对象
        HashOperations hashOperations = redisTemplate.opsForHash();     // redis当中的哈希类型数据操作对象
        ListOperations listOperations = redisTemplate.opsForList();     // redis当中的列表类型数据操作对象
        SetOperations setOperations = redisTemplate.opsForSet();        // redis当中的集合类型数据操作对象
        ZSetOperations zSetOperations = redisTemplate.opsForZSet();     // redis当中的有序集合类型数据操作对象
    }
}

相关文章:

  • spark 集群
  • Gson修仙指南:谷歌大法的佛系JSON渡劫手册
  • C++语言新特性2
  • GraalVM 24 正式发布阿里巴巴贡献重要特性 —— 支持 Java Agent 插桩
  • CExercise_05_1函数_2海伦公式求三角形面积
  • YOLO学习笔记 | 基于YOLO与光流融合的车牌识别方法研究(附Matlab代码)
  • FastAPI依赖注入:从基础概念到应用
  • python+form+opengl显示动态图形数据
  • Nacos 的AP和CP底层是怎么实现的?
  • 多layout 布局适配
  • DHCP之报文格式
  • 记录 | Android getWindow().getDecorView().setSystemUiVisibility(...)设置状态栏属性
  • ubuntu22.04LTS设置中文输入法
  • VBA第三十七期 VBA如何通过事件触发监视所有打开的工作簿或工作表?
  • Linux——Linux系统调用函数练习
  • TCP基础篇(一)
  • 002.指纹浏览器进阶-传参指定操作系统为macOS
  • 【论文推荐|滑坡检测·空间预测·时间预测· 数据驱动的分析】机器学习在滑坡研究中的最新进展与应用(2022)(五)
  • 一周学会Pandas2 Python数据处理与分析-NumPy简介
  • OpenStack 卷虚拟机跨租户迁移方案
  • html5网站开发案例视频/seo免费培训视频
  • 社交网站 备案/seoul
  • 视频网站文案/seo在线优化
  • 阿里巴巴官方网站/百度信息流怎么做效果好
  • tornado做网站/苏州关键词seo排名
  • 从网站建设到网站运营/seo网站推广