使用Java连接redis的方式

除了使用 Spring Data Redis,Java 连接 Redis 还可以通过以下几种方式:

1. Jedis

Jedis 是一个流行的 Java Redis 客户端库,提供了简单的 API 来访问 Redis。

依赖

<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.2.3</version> <!-- 使用最新版本 -->
</dependency>

示例代码

import redis.clients.jedis.Jedis;public class JedisExample {public static void main(String[] args) {try (Jedis jedis = new Jedis("localhost", 6379)) {jedis.set("key", "value");System.out.println("Value: " + jedis.get("key"));}}
}

2. Lettuce

Lettuce 是另一个流行的 Java Redis 客户端库,支持异步和响应式操作。

依赖

<dependency><groupId>io.lettuce.core</groupId><artifactId>lettuce-core</artifactId><version>6.2.2</version> <!-- 使用最新版本 -->
</dependency>

示例代码

import io.lettuce.core.RedisClient;
import io.lettuce.core.api.StatefulRedisConnection;
import io.lettuce.core.api.sync.RedisCommands;public class LettuceExample {public static void main(String[] args) {RedisClient redisClient = RedisClient.create("redis://localhost:6379");try (StatefulRedisConnection<String, String> connection = redisClient.connect()) {RedisCommands<String, String> syncCommands = connection.sync();syncCommands.set("key", "value");System.out.println("Value: " + syncCommands.get("key"));}}
}

3. Redisson

Redisson 是一个高级 Redis 客户端,提供了丰富的功能和分布式对象。

依赖

<dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId><version>3.16.5</version> <!-- 使用最新版本 -->
</dependency>

示例代码

import org.redisson.Redisson;
import org.redisson.api.RBucket;
import org.redisson.api.RedissonClient;
import org.redisson.config.Config;public class RedissonExample {public static void main(String[] args) {Config config = new Config();config.useSingleServer().setAddress("redis://localhost:6379");try (RedissonClient redisson = Redisson.create(config)) {RBucket<String> bucket = redisson.getBucket("key");bucket.set("value");System.out.println("Value: " + bucket.get());}}
}

4. Spring Data Redis (非 Spring Boot)

即使不使用 Spring Boot,Spring Data Redis 也可以单独使用,以便在普通的 Spring 应用中连接 Redis。

依赖

<dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId><version>3.6.0</version> <!-- 使用最新版本 -->
</dependency>

配置和使用

import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.GenericToStringSerializer;@Configuration
public class RedisConfig {@Beanpublic RedisConnectionFactory redisConnectionFactory() {return new LettuceConnectionFactory("localhost", 6379);}@Beanpublic RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {RedisTemplate<String, Object> template = new RedisTemplate<>();template.setConnectionFactory(connectionFactory);template.setValueSerializer(new GenericToStringSerializer<>(Object.class));return template;}
}

总结

  • Jedis:简单易用,适合大多数应用。
  • Lettuce:支持异步和响应式操作,适合需要高性能的应用。
  • Redisson:提供丰富的高级功能,如分布式锁和集合。
  • Spring Data Redis:简化 Spring 应用中 Redis 的操作,与 Spring Boot 集成时非常方便。

选择适合你的项目需求的 Redis 客户端库。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/50845.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring Boot集成Jythonb并且支持三方的python依赖包

上篇文章讲了 如何在java中执行python代码&#xff0c;这篇文章讲一下如何让jython支持三方依赖包 1.什么是Jython&#xff1f; Jython是Python编程语言的JVM实现。 它旨在在Java平台上运行。 Jython程序可以导入和使用任何Java类。 就像Java一样&#xff0c;Jython程序编译为…

SX_UNIX套接字通信_15

UNIX套接字通信的优势&#xff1a; UNIX套接字通信常用于一个项目中的进程之间通信&#xff0c;UNIX提供了与网络套接字相似的特性&#xff0c;但是避免了网络延迟&#xff0c;提高了性能&#xff0c;但是它只能在同一台机器上使用&#xff0c;无法跨越网络的进程间通信 实例&…

计算机的错误计算(六十七)

摘要 计算机的错误计算&#xff08;五十六&#xff09;与&#xff08;六十六&#xff09;分别探讨了大数与 附近数的正切函数值的错误计算。本节讨论第三种类型数值&#xff1a; 附近数 的正切函数的计算精度问题。 例1. 已知 计算 先用 Go语言计算&#xff1a; packag…

STL介绍以及string类

什么是STL 是C标准库的重要组成部分&#xff0c;不仅是一个可复用的组件库&#xff0c;而且是一个包罗数据结构与算法的软件框架。 STL的六大组件 为什么要学习string类 C语言中的字符串 C语言中&#xff0c;字符串是以\0结尾的一些字符的集合&#xff0c;为了操作方便&am…

模具监视器的技术参数有哪些

模具监视器的技术参数涵盖了多个方面&#xff0c;这些参数对于确保模具监视器的性能、稳定性和检测精度至关重要。以下是一些主要的技术参数&#xff1a; 一、显示器参数 屏幕尺寸&#xff1a;常见的模具监视器显示器尺寸为12.5英寸至13.5英寸&#xff0c;具体尺寸可能因不同…

基于RabbitMQ的消息监听器

1. 背景 机构的新增、更新、删除在微服务A中已经完成了&#xff08;微服务A已经部署&#xff0c;不能修改代码&#xff09;&#xff0c;如果在微服务A中对机构进行新增、更新、删除操作后&#xff0c;需要同步到自己的微服务B中&#xff0c;这里采用MQ消息通知的方式实现。 微…

如何建立一个既能快速记录又易于回顾的笔记系统?

在快节奏的学习和工作中&#xff0c;能够快速记录和回顾信息变得尤为重要。尤其对于编程学习者来说&#xff0c;构建一个高效、有序的笔记系统不仅可以提高学习效率&#xff0c;还能帮助我们在未来轻松回溯知识要点。本文将详细探讨如何打造一个既快速记录又易于回顾的笔记系统…

打卡第48天------单调栈

今天正式开始单调栈&#xff0c;开启新的篇章了&#xff0c;那个动态规划真的太难了。不过卡尔总结的很全面&#xff0c;真的是收获不少呀。小坚持带来大改变。加油✊ 1. 每日温度 leetcode题目链接&#xff1a;739. 每日温度 题目描述&#xff1a; 给定一个整数数组 temperat…

使用EasyExcel填充Excel并上传至OSS

在企业级应用中&#xff0c;经常需要处理数据的导入导出功能。Excel作为最常用的数据交换格式之一&#xff0c;其自动化处理尤为重要。本文将介绍如何使用EasyExcel库来填充Excel模板&#xff0c;并将生成的文件上传到对象存储服务&#xff08;OSS&#xff09;。 EasyExcel简介…

Python 异步爬虫:高效数据抓取的现代武器

标题&#xff1a;“Python 异步爬虫&#xff1a;高效数据抓取的现代武器” 在当今信息爆炸的时代&#xff0c;网络爬虫已成为数据采集的重要工具。然而&#xff0c;传统的同步爬虫在处理大规模数据时往往效率低下。本文将深入探讨如何使用 Python 实现异步爬虫&#xff0c;以提…

HTTP?HTTPS?HTTP2.0

Http HTTP&#xff08;HyperText Transfer Protocol&#xff0c;超文本传输协议&#xff09;是一种用于分布式、协作式、超媒体信息系统的应用层协议。它基于TCP/IP通信协议来传递数据&#xff0c;如HTML文件、图片文件等。以下是HTTP的详细解析&#xff1a; 一、HTTP的基本…

YAML在Spring Boot中的应用

1. 基本语法 YAML使用缩进来表示层级关系&#xff0c;通常使用空格进行缩进&#xff08;推荐使用2个空格&#xff09;。 基本语法示例&#xff1a; key: value nested:key: value list:- item1- item22. 配置文件命名 在Spring Boot中&#xff0c;YAML配置文件通常命名为 a…

手撕C++入门基础

1.C介绍 C课程包括&#xff1a;C语法、STL、高阶数据结构 C参考文档&#xff1a;Reference - C Reference C 参考手册 - cppreference.com cppreference.com C兼容之前学习的C语言 2.C的第一个程序 打印hello world #define _CRT_SECURE_NO_WARNINGS 1 // test.cpp // …

RDKit在数据科学中的应用|药物筛选中的数据清理与标准化

在化学信息学和药物研发的过程中,分子数据的质量至关重要。数据清理与标准化是确保分子库数据一致性、可靠性和可比较性的关键步骤。RDKit 提供了丰富的工具,帮助用户清理和标准化分子数据,从而提高下游分析和建模的准确性。 1 数据清理的重要性 分子数据通常来自多种来源…

获取操作系统的信息(Go语言)

在 Go 语言中&#xff0c;你可以使用 runtime 和 os 包来查看操作系统的信息。以下是一些常见的操作系统信息获取方法&#xff1a; 1. 获取操作系统类型和架构信息 Go 的 runtime 包提供了基本的操作系统和架构信息&#xff1a; package mainimport ("fmt""r…

c_cpp_properties.json、launch.json、 tasks.json

在 Visual Studio Code 中&#xff0c;c_cpp_properties.json、launch.json 和 tasks.json 是三个重要的配置文件&#xff0c;它们的作用如下&#xff1a; c_cpp_properties.json&#xff1a; 这个文件用于配置 C/C 扩展的 IntelliSense、编译器路径和包括路径等。它帮助 VS Co…

Unity Dots学习 (一)

先学习怎么使用&#xff0c;再研究底层代码。Dots大家都有所耳闻。一直没时间研究&#xff0c;最近研究一下 看上图可知&#xff0c;哪怕是CPU的第三级缓存也比内存要快2-5倍。 资料&#xff1a; 《DOTS之路》第零节——前导课(1)——DOTS的5W1H问题_哔哩哔哩_bilibili 《DOT…

快速搭建全向轮小车

总体介绍 使用两块ordive控制ros-mobile app进行控制&#xff0c;odrive通过python可以轻松控制&#xff0c;ros-mobile可以进行与电脑的ros连接充当一个遥控器。 记录代码 读取rosmobile的遥控数据 #!/usr/bin/env python3import threading import time from queue import…

景联文科技:图像标注的类型有哪些?

图像标注是计算机视觉领域中一个非常重要的步骤&#xff0c;它是创建训练数据集的关键组成部分&#xff0c;主要用于帮助机器学习算法理解图像内容。 以下是图像标注的一些主要类型&#xff1a; 1. 边界框标注&#xff1a; • 这是最常见的标注方式之一&#xff0c;通常用于…

多字段聚合查询在Elasticsearch中的实践

Elasticsearch是一个功能强大的搜索引擎&#xff0c;它不仅支持全文搜索&#xff0c;还提供了丰富的聚合功能。聚合可以帮助我们对数据进行分组和统计&#xff0c;从而得到有意义的分析结果。本文将通过Java代码示例&#xff0c;介绍如何在Elasticsearch中实现多字段的聚合查询…