Redis 学习总结(2) Java 操作 Redis 的示例

news/2025/3/3 10:07:14/

1. 背景

在 java 开发中集成 redis。

我们用到 Spring Data Redis 。

2.知识

Spring Data Redis 是更大的 Spring Data 系列的一部分,它提供了从 Spring 应用程序对 Redis 的轻松配置和访问。

它支持 两种 Redis 驱动程序:

  • Lettuce
  • Jedis

Spring Data Redis 实现了对底层的抽象, 无论是那一种驱动,使用起来是一样的。

3. 示例

3.1 导入依赖包

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

3.2 配置数据源

在配置文件 application.yml 里:

spring:redis:host: localhostport: 6379password: 123456database: 0

3.3 配置一个 RedisTemplate 对象

Springboot 强大的自动化配置会把 RedisConnectionFactory 对象配置好,直接用就好了。它会按 上一步的配置文件的参数配置好数据源。

RedisTemplate 是Spring 的模板方法,提供了对 redis 的抽象,我们注入一个配置,后续就可以自动装载了。

@Configuration
public class RedisConfig {/*** 通过 Spring 注入 一个 RedisTemplate** @param redisConnectionFactory* @return*/@Beanpublic RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) {StringRedisTemplate redisTemplate = new StringRedisTemplate();redisTemplate.setValueSerializer(jackson2JsonRedisSerializer());redisTemplate.setConnectionFactory(redisConnectionFactory);return redisTemplate;}/*** 注入一个 json 序列化转换器** @return*/@Beanpublic Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer() {ObjectMapper objectMapper = new ObjectMapper();objectMapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL);Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class);jackson2JsonRedisSerializer.setObjectMapper(objectMapper);return jackson2JsonRedisSerializer;}}

3.3 可以使用自动装载了

    @Autowiredprivate RedisTemplate redisTemplate;

代码使用:

ValueOperations<String, String> valueOperations = redisTemplate.opsForValue();
final String KEY = String.format("users:%s", id);
String result = valueOperations.get(KEY);

4. 扩展

4.1 可以操作 hash结构

写入:

 // 同时按 email 存一个id 的引用
final String KEY_MAIL = "users:by:email";
HashOperations<String, String, String> hashOperations = redisTemplate.opsForHash();
hashOperations.put(KEY_MAIL, email, result.getId() + "");

读取:

final String KEY_MAIL = "users:by:email";
HashOperations<String, String, String> hashOperations = redisTemplate.opsForHash();
String id = hashOperations.get(KEY_MAIL, email);
if (id != null) {return getEntity(Integer.parseInt(id));
}
return null;

5.附录

我的代码示例:https://github.com/vir56k/java_demo/tree/master/springboot_redis_demo

6.参考:

https://spring.io/projects/spring-data-redis#overview
https://docs.spring.io/spring-data/redis/docs/2.5.3/reference/html/#reference

最后编辑于:2025-02-24 20:47:13


喜欢的朋友记得点赞、收藏、关注哦!!!


http://www.ppmy.cn/news/1576262.html

相关文章

Android OCR技术实现与优化指南

关于Android上OCR技术的问题。首先&#xff0c;用户可能想知道在Android平台上如何实现OCR识别。我应该先介绍OCR的基本概念&#xff0c;然后讨论不同的实现方法&#xff0c;比如使用Google的ML Kit、Tesseract或者其他第三方SDK。接下来可能需要分步骤说明如何集成这些库到And…

DeepSeek 助力 Vue3 开发:打造丝滑的网格布局(Grid Layout)

前言&#xff1a;哈喽&#xff0c;大家好&#xff0c;今天给大家分享一篇文章&#xff01;并提供具体代码帮助大家深入理解&#xff0c;彻底掌握&#xff01;创作不易&#xff0c;如果能帮助到大家或者给大家一些灵感和启发&#xff0c;欢迎收藏关注哦 &#x1f495; 目录 Deep…

迷你世界脚本世界接口:World

世界接口&#xff1a;World 彼得兔 更新时间: 2024-06-04 09:40:40 具体函数名及描述如下: 序号 函数名 函数描述 1 isDaytime(...) 是否为白天 2 isCustomGame(...) 是否为自定义游戏 3 isCreativeMode(...) 是否为创造模式 4 isGodMode(...) …

介绍如何使用生成对抗网络(GAN)和Cycle GAN设计用于水果识别的模型

下面将详细介绍如何使用生成对抗网络&#xff08;GAN&#xff09;和Cycle GAN设计用于水果识别的模型&#xff0c;我们将使用Python和深度学习框架PyTorch来实现。 1. 生成对抗网络&#xff08;GAN&#xff09;用于水果识别 原理 GAN由生成器&#xff08;Generator&#xff…

数据结构(初阶)(三)----单链表

单链表 概念 概念&#xff1a;链表是⼀种物理存储结构上⾮连续、⾮顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 结点 与顺序表不同的是&#xff0c;链表的结构类似于带车头的火车车厢&#xff0c;&#xff0c;链表的每个车厢都是独立…

# 【Unity】【游戏开发】赛车游戏中碰撞加速的实现方法

背景 在赛车类游戏开发中,常常需要实现赛车在碰撞某些道具或对象后加速的功能。例如,当赛车经过加速带或碰撞加速道具时,速度会瞬间增加,使游戏更具动态性和可玩性。本文将介绍一种通用的实现方式,并分析其逻辑。 分析 加速的核心逻辑如下: 判断碰撞条件:检测赛车是否…

Redis常见面试题大白话简答,关于认识Redis及其数据结构、线程模型和持久化

前言 备战面试刷Redis面试题&#xff0c;觉得不能光看还得有输出&#xff0c;于是写文用大白话来回答面试题。 本文仅包括小林coding中Redis面试篇中关于认识Redis、Redis的数据结构、Redis线程模型和Redis持久化部分 写文果然是有助于理解的方式&#xff0c;感觉在倒逼自己…

DockerでOracle Database 23ai FreeをセットアップしMAX_STRING_SIZEを拡張する手順

DockerでOracle Database 23ai FreeをセットアップしMAX_STRING_SIZEを拡張する手順 はじめに環境準備ディレクトリ作成Dockerコンテナ起動 データベース設定変更コンテナ内でSQL*Plus起動PDB操作と文字列サイズ拡張設定検証 管理者ユーザー作成注意事項まとめ 中文版请访问这里…