ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Spring Boot 2.X 学习日记——整合redis

2019-04-03 08:48:09  阅读:257  来源: 互联网

标签:context notice redis String Spring Redis Boot import public


文章目录

Redis介绍

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。

随着Spring Boot支持的组件越来越多,技术也越来越成熟。在Spring Boot 2.X以后,对Redis的支持不再仅仅只是提供越来越强大的API,更是在底层,将Redis的默认客户端从Jedis改为了Lettuce

#Lettuce和Jedis

LettuceJedis都是Java开发中,与Redis进行交互的中间件。Jedis实现上是直连redis server,多线程环境下非线程安全,除非使用连接池,为每个Jedis实例增加物理连接Lettuce基于Netty的连接实例(StatefulRedisConnection),可以在多个线程间并发访问,且线程安全,满足多线程环境下的并发访问,同时它是可伸缩的设计,一个连接实例不够的情况也可以按需增加连接实例

添加依赖包

compile 'org.springframework.boot:spring-boot-starter-data-redis'

tips:Spring Boot 2.X后,Jedis的相关依赖已经被剔除,改为了Lettuce

配置Redis

application.yml中添加redis相关配置

spring:
  redis:
    host: #地址
    port: #端口
    password: #密码
    timeout: # 连接超时时间(毫秒)
    lettuce:
      pool:
        max-active: #连接池最大连接数(使用负值表示没有限制) 默认 8
        max-wait: # 连接池最大阻塞等待时间(使用负值表示没有限制) 默认 -1
        max-idle: # 连接池中的最大空闲连接 默认 8
        min-idle: # 连接池中的最小空闲连接 默认 0

测试

一切准备就绪后,写个junit测试类来验证代码的正确性

Notice.java

package com.boot.demo.entity;

import java.io.Serializable;

public class Notice implements Serializable {

    private static final long serialVersionUID = 210818469999970139L;

    private String id;

    private String context;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getContext() {
        return context;
    }

    public void setContext(String context) {
        this.context = context;
    }
}

RedisTest.java

package com.boot.demo.test;

import com.boot.demo.entity.Notice;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.test.context.junit4.SpringRunner;

import javax.annotation.Resource;

@RunWith(SpringRunner.class)
@SpringBootTest(properties = "spring.main.web-application-type=reactive")
public class RedisTest {

    @Resource(name = "redisTemplate")
    private ValueOperations<String,Object> valueOperations;

    @Test
    public void get(){
        Notice notice = new Notice();
        notice.setId("111");
        notice.setContext("Hello");
        String key = "string:notice";
        valueOperations.set(key,notice);
        System.out.println(notice);
        notice = (Notice)valueOperations.get(key);
        System.out.println(notice);
    }
}

全文代码

XXXOperations

Spring Boot中,对Redis的支持,其实主要是通过Spring Data Redis这个框架去完成的,它对Redis的支持,主要体现在框架中的XXXOperations,我们在实际开发中可以通过注入这些Operations来完成IO操作。下面简单的列举了几种常用的Operations

接口 描述
HashOperations 处理Hash结构的相关操作
ListOperations 处理List结构的相关操作
SetOperations 处理Set结构的相关操作
ValueOperations 处理String结构的相关操作
ZSetOperations 处理ZSet(或者 Sorted Set)结构的相关操作

想了解更多关于XXXOperations的知识的话,可以访问官方地址

标签:context,notice,redis,String,Spring,Redis,Boot,import,public
来源: https://blog.csdn.net/u014252106/article/details/88984529

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有