Redis的Java客户端另一个很火的技术栈------SpringDataRedis

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介: SpringDataRedis和之前介绍的Jedis一样都是Java的redis客户端SpringData是Spring中数据擦欧总的模块,包括对各种数据库的集成其中,Redis的集成模块就是SpringDataRedis当然SpringDataRedis也有很多的版本,这里我们可以选择一个稳定版本来使用。## 几个好处1.提供了对不同的Redis客户端的整合2.提供了RedisTemplate的统一的API来操作Redis3.支持Redis哨兵和redis集群4.支持Redis的发布订阅模型5.支持基于Lettuce的响应式编程6.支持基于JDK,JS

引言

SpringDataRedis和之前介绍的Jedis一样都是Java的redis客户端

SpringData是Spring中数据擦欧总的模块,包括对各种数据库的集成

其中,Redis的集成模块就是SpringDataRedis

当然SpringDataRedis也有很多的版本,这里我们可以选择一个稳定版本来使用。

几个好处

1.提供了对不同的Redis客户端的整合

2.提供了RedisTemplate的统一的API来操作Redis

3.支持Redis哨兵和redis集群

4.支持Redis的发布订阅模型

5.支持基于Lettuce的响应式编程

6.支持基于JDK,JSON,字符串,Spring对象的数据序列化及反序列化

7.支持基于Redis的JDKCollection的实现

8.Jedis中大量的原生的Redis操作,存储的往往是字符串,面对复杂的对象时要繁重的手动化操作,没有SpringDataRedis的操作方便。

一些缺点

我们Jedis中的指令往往是原生的Redis的操作,而SpringDataRedis将其进行了封装分组,学习成本较高。

依赖项

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

传统的jar包引入

传统的jar导入并不多赘述,也不推荐。

众所周知,传统Jar包的导入即去对应的网址下载所需的jar包,然后放在指定的目录的下,但这么做有很多的问题与缺点

统jar包导入的缺点

首先要去找到对应的官网下的对应版本的jar包,有时候还会遇到广告的网址,要去做一个筛选判断,而且即便找到了对应好的所需jar包的官网,繁重的英文,大量的不知道干什么的文件......

而且即便是找到了正确的资源jar包,较慢的下载速度,较为繁琐的引入方式,让人很难受。

Maven项目管理

这里我们采用Maven项目管理的方式来完成jar包的引入,这里的另一个好处是,传统的项目的创建,比如idea的项目,在eclipse上未必能运行。而采用Maven项目管理的方式,也一定程度上提高了项目的兼容性。同时在Maven项目中的pom.xml中直接导坐标的形式,一定程度上非常非常非常方便。

pom.xml依赖如下:

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

接下来我们做一下刷新。

完成了Jar包的导入。

yml的配置

我们首先找到application.properties文件,将其后缀名改成yml

yml和properties有什么区别呢?

properties 和 yml 都是 Spring Boot 支持的两种配置文件,它们可以看作是 Spring Boot 在不同时期的两款“产品”。在 Spring Boot 时代已经不需要使用 XML 文件格式来配置项目了,取而代之的是 properties 或 yml 文件。

properties 配置文件属于早期,也是目前创建 Spring Boot(2.x)项目时默认的配置文件格式,而 yml 可以看做是对 properties 配置文件的升级,属于 Spring Boot 的“新版”配置文件。

properties 和 yml 的区别主要体现在以下 4 点:

  1. 定义和定位不同;
  2. 语法不同;
  3. yml 更好的配置多种数据类型;
  4. yml 支持多种语言、通用性更好。

yml中配置如下:

spring:
  redis:
    host: 127.0.0.1
    port: 6379
    password: 123456
    lettuce:
      pool:
        max-active: 8
        max-idle: 8
        min-idle: 0
        max-wait: 100ms

完成配置。

测试用例

package com.example.lyyshop;

import com.example.lyyshop.Dao.DaoMapper;
import com.example.lyyshop.RealClass.User;
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.RedisTemplate;

import java.util.List;

@SpringBootTest
class LyyShopApplicationTests {
   @Autowired(required = false)
   private RedisTemplate redisTemplate;

   @Test
   void contextLoads() {
      redisTemplate.opsForValue().set("name","redis");

   }

}

接下来我们连接redis,输入get name成功获取到"redis"

相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore &nbsp; &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
19天前
|
JSON NoSQL Java
Redis入门到通关之Java客户端SpringDataRedis(RedisTemplate)
Redis入门到通关之Java客户端SpringDataRedis(RedisTemplate)
33 0
|
4天前
|
NoSQL Java Redis
在Java中操作Redis
在Java中操作Redis
7 0
|
5天前
|
JSON NoSQL Java
深入浅出Redis(十三):SpringBoot整合Redis客户端
深入浅出Redis(十三):SpringBoot整合Redis客户端
|
5天前
|
网络协议 Dubbo Java
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
【网络编程】理解客户端和服务器并使用Java提供的api实现回显服务器
9 0
|
6天前
|
NoSQL 网络协议 Java
Redis客户端Lettuce深度分析介绍(上)
Spring Boot自2.0版本开始默认使用Lettuce作为Redis的客户端(注1)。Lettuce客户端基于Netty的NIO框架实现,对于大多数的Redis操作,只需要维持单一的连接即可高效支持业务端的并发请求 —— 这点与Jedis的连接池模式有很大不同。同时,Lettuce支持的特性更加全面,且其性能表现并不逊于,甚至优于Jedis。本文通过分析Lettuce的特性和内部实现(基于6.0版本),及其与Jedis的对照比较,对这两种客户端,以及Redis服务端进行深度探讨。
|
14天前
|
存储 NoSQL 安全
java 中通过 Lettuce 来操作 Redis
java 中通过 Lettuce 来操作 Redis
java 中通过 Lettuce 来操作 Redis
|
14天前
|
Java
JavaFX库用于在Java中绘制K线图,适合构建富客户端应用。
JavaFX库用于在Java中绘制K线图,适合构建富客户端应用。以下是一个简单的K线图绘制示例:创建OHLCChart,设置标题和坐标轴,创建数据集并添加数据点,最后显示在Scene中。要定制图表外观,可利用JavaFX的丰富参数和方法。查阅JavaFX文档以获取更多细节。
25 3
|
存储 自然语言处理 Java
Elasticsearch: java客户端之AdminClient
Elasticsearch: java客户端之AdminClient
142 0
|
存储 自然语言处理 Java
Elasticsearch: java客户端之AdminClient
Elasticsearch: java客户端之AdminClient
216 0
Elasticsearch: java客户端之AdminClient
|
1天前
|
Java
Java中的多线程编程:基础知识与实践
【5月更文挑战第13天】在计算机科学中,多线程是一种使得程序可以同时执行多个任务的技术。在Java语言中,多线程的实现主要依赖于java.lang.Thread类和java.lang.Runnable接口。本文将深入探讨Java中的多线程编程,包括其基本概念、实现方法以及一些常见的问题和解决方案。