springboot 使用ValueOperations在启动类中添加

Springboot使用RedisTemplate优雅地操作redis 概述 本文内容主要 关于spring-redis 关于redis的key设计 redis的基本数据结构 介绍redis与springboot的整合 sringboot中的redistemplate的使用 关于spring-redis spring-data-redis针对jedis提供了如下功能: 1.连接池自动管理,提供了一个高度封装的“R... 阅读详情

在主启动类中添加

@Bean(na me="valueOperations")

public ValueOperations valueOperations(){

RedisConnectionFactory  RedisConnectionFactory = new RedisConnectionFactory();

RedisTemplate redistemplate = new RedisTemplate();

redisTemplate.setConnectionFactory(RedisConnectionFactory);

ValueOperations valueOperations =redisTemplate.opsForValue();

return valueOperation;

}

在serviceImpl实现类中注入

@Resoure(name="redisTemplate")

public ValueOperations valueOperations

  1. 想要在spring boot中使用redis,只要在pom文件中增加如下的配置就可以了。
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>```

2. 引入spring-boot-redis jar包之后,选择相应的客户端配置连接就可以使用redis了,推荐使用Jedis。
```@Bean
JedisConnectionFactory connectionFactory() {
    return new JedisConnectionFactory();
}```

3. 配置完连接后,就可以使用redis进行简单的存取了。如果存取的key,value都是String的,可以使用
RedisTemplate<String, String>对象,该对象由spring boot自动扫描生成,在需要的地方可以直接注入。如果只是进行简单的存储,还可以生成
ValueOperations对象来方便操作。
```@Bean
ValueOperations<String, String> strOperations(RedisTemplate<String, String> redisTemplate) {
    return redisTemplate.opsForValue();
}```

4. 如果想要存取其他类型的对象,例如存取key为string,value为Integer类型的对象,可以new这个对象,然后配置连接即可使用。
```@Bean
RedisTemplate<String, Integer> intRedisTemplate(JedisConnectionFactory connectionFactory) {
    RedisTemplate<String, Integer> redisTemplate = new RedisTemplate<String, Integer>();
    redisTemplate.setConnectionFactory(connectionFactory);
    return redisTemplate;
}```

5. RedisTemplate对象默认使用jdkSerializer实现序列化,如果想要更换序列化的实现方式,例如使用json实现value的序列化,可以进行如下配置

```@Bean
Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer(ObjectMapper objectMapper) {
    Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(
            Object.class);
    jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
    return jackson2JsonRedisSerializer;
}

@Bean
RedisTemplate<String, Object> objRedisTemplate(JedisConnectionFactory connectionFactory,
        Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer) {
    RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
    redisTemplate.setConnectionFactory(connectionFactory);
    redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
    StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
    redisTemplate.setKeySerializer(stringRedisSerializer);
    redisTemplate.setHashKeySerializer(stringRedisSerializer);
    return redisTemplate;
}

最后附上上述操作的完整代码

@Configuration
public class RedisConfig {

    @Bean
    JedisConnectionFactory connectionFactory() {
        return new JedisConnectionFactory();
    }

    @Bean
    ValueOperations<String, String> strOperations(RedisTemplate<String, String> redisTemplate) {
        return redisTemplate.opsForValue();
    }

    @Bean
    RedisTemplate<String, Integer> intRedisTemplate(JedisConnectionFactory connectionFactory) {
        RedisTemplate<String, Integer> redisTemplate = new RedisTemplate<String, Integer>();
        redisTemplate.setConnectionFactory(connectionFactory);
        return redisTemplate;
    }

    @Bean
    ValueOperations<String, Integer> intOperations(RedisTemplate<String, Integer> redisTemplate) {
        return redisTemplate.opsForValue();
    }

    @Bean
    Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer(ObjectMapper objectMapper) {
        Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<Object>(
                Object.class);
        jackson2JsonRedisSerializer.setObjectMapper(objectMapper);
        return jackson2JsonRedisSerializer;
    }

    @Bean
    RedisTemplate<String, Object> objRedisTemplate(JedisConnectionFactory connectionFactory,
            Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer) {
        RedisTemplate<String, Object> redisTemplate = new RedisTemplate<String, Object>();
        redisTemplate.setConnectionFactory(connectionFactory);
        redisTemplate.setDefaultSerializer(jackson2JsonRedisSerializer);
        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
        redisTemplate.setKeySerializer(stringRedisSerializer);
        redisTemplate.setHashKeySerializer(stringRedisSerializer);
        return redisTemplate;
    }

    @Bean
    ValueOperations<String, Object> objOperations(RedisTemplate<String, Object> redisTemplate) {
        return redisTemplate.opsForValue();
    }

}```

参考文档:
1.  http://docs.spring.io/spring-data/redis/docs/current/reference/html/
2.  http://docs.spring.io/spring-framework/docs/4.0.4.RELEASE/javadoc-api/org/springframework/context/annotation/Configuration.html
3. http://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springf

 

药物对接仿真软件:HADDOCK_(16).实践项目:抗体-抗原对接案例 定义分子结构文件。 阅读详情

相关推荐

从零开始!Jupyter Notebook的安装教程(附带pip和Python的安装教程)

本篇文章创造性的以“授人以渔”的方式教大家如何安装Jupyter Notebook、pip和Python,以及对于Jupyter Notebook代码路径的基本设置。

保证安全,保证寿终正寝的博客 13万+

(转)ReidsTemplate如何注入到ValueOperations(Spring不同类型的类注入)

本文转自 https://www.cnblogs.com/tangyuanyuan/p/8067923.html 今天看到Spring操作redis  是可以将redisTemplate注入到ValueOperations,避免了ValueOperations&lt;String, Object&gt; valueOperations = redisTemplate.opsForValue();...

六种鱼的博客 1046

Q学习(Q-learning)入门小例子及python实现

一、从马尔科夫过程到Q学习 # 有一定基础的读者可以直接看第二部分 Q学习(Q-learning)算法是一种与模型无关的强化学习算法,以马尔科夫决策过程(Markov Decision Processes, MDPs)为理论基础。 标准的马尔科夫决策过程可以用一个五元组<S,A,P,R,γ>表示,其中: S是一个离散有界的状态空间; A是一个离散的动作空间; P为状态转...

wlm_py的博客 4万+

搞不懂,为啥redis操作对象的注入方式跟平常的不一样?

官方注释对PropertyEditor进行了说明PropertyEditor类为希望允许用户编辑给定类型的属性值的GUI提供支持。PropertyEditor支持显示和更新属性值的各种不同方式。大多数PropertyEditors只需要支持此API中可用的不同选项的子集。Simple PropertyEditors可能只支持getAsText和setAsText方法,不需要支持paintValue或getCustomEditor。更复杂的类型可能无法支持getAsText和setAsText,

Huangjiazhen711的博客 544

Kubernetes多网卡环境下Calico网络配置避坑指南:如何精准指定业务网卡

本文针对Kubernetes多网卡环境下Calico网络配置的常见痛点,提供了精准指定业务网卡的实战指南。通过深入分析Calico的IP自动检测机制,详细解读并对比了五种IP_AUTODETECTION_METHOD配置方法(如interface、cidr、can-reach等),帮助运维人员从根源上解决网络分区和Pod通信失败问题,确保生产集群网络的稳定与可靠。

weixin_28835551的博客 730

labelImg使用教程

Anaconda环境 安装 Anaconda 之后,在开始菜单下找到 Anaconda 文件夹 找到 Anaconda Prompt 点击运行 安装 labelImg pip install labelImg #直接命令行输入 启动 labelImg labelImg #直接命令行输入名称即可 labelImg界面 开始标注 快捷键:W(创建方框),A(上一张),D(下一张) XML文件示例 <annotation> <folder>夜读</folder>

G果的博客 3万+

SpringBoot实战第五天

最后在开发一个文件上传接口,结束后端部分开发。

Cary_cacb的博客 1368

iOS逆向之深入解析Hook的原理方法和安全防护

Hook简介 Hook就是一种改变程序执行流程的一种技术的统称; 一段程序的执行流程是 A --> B --> C,现在我们在 A 和 B 之间插入一段代码或者直接改变 B ,这样程序原有的执行流程就发生了改变。如下图所示: Hook的方式:Method Swizzle,fishhook,Cydia Substrate; Hook原理 一、Method Swizzle 原理 利用OC的Runtime特性,动态去改变SEL(方法编号)和IMP(方法实现)的对应关系,达到OC方法调用流程改变

╰つ栺尖篴夢ゞ 2万+

springboot整合redis

1.java连接redis (1) 引入redis的依赖------>jedis <dependencies> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.6.0</version>

y19980522的博客 257

AI自动化流程在金融风控中的3个典型案例

AI自动化风控流程全流程自动化:最小化人工干预,实现从数据输入到决策输出的闭环自适应学习:通过持续数据反馈实现模型自动迭代优化实时决策能力:满足毫秒级(支付风控)至分钟级(信贷审批)的响应需求多模态数据融合:整合结构化、非结构化和实时流数据智能决策解释:自动生成符合监管要求的决策解释人机协同机制:在高风险场景下实现AI与人类专家的协同决策实施后关键绩效指标(KPI)变化指标实施前实施后改进幅度平均审批时间3.2天4.7分钟-99.7%自动审批率15%85%+467%

架构师的AI之路,分享AI应用开发架构的学习与实践。 1535

非技术面试题精选大全

回答提示:一般人回答这个问题过于平常,只说姓名、年龄、爱好、工作经验,这些在简历上都有,其实,企业最希望知道的是求职者能否胜任工作,包括:最强的技能、最深入研究的知识领域、个性中最积极的部分、做过的最成功的事,主要的成就等,这些都可以和学习无关,也可以和学习有关,但要突出积极的个性和做事的能力,说得合情合理企业才会相信。企业喜欢有礼貌的求职者。

吃面爱放香菜的博客 434

stringRedisTemplate中ValueOperations设置值 抽空迁移并废弃掉 todo

stringRedisTemplate中ValueOperations设置值

enthan809882的博客 1766

堆一呼一吸之间:动态扩缩容引发JVM堆内存震荡的伸缩算法、代际传导与容器定容解析

Kubernetes扩容后,新Java实例的GC频率常比老实例高出数倍,堆容量反复伸缩。本文从一次支付系统的GC陡增出发,结合HotSpot源码与JDK 8实测,拆解堆伸缩的记账规则:期望容量以GC后已用量为基数、以Xms为下限,按空闲比例判断扩缩,收缩只在老年代回收后按0%、10%、40%、100%步进;再剖析年轻代随老年代联动、晋升风暴与元空间触发线,对比Parallel、G1、ZGC等收集器及JDK 26的变化,讨论容器分账、HPA共振与原地扩缩容,最后给出分级定容、预热与监控的方案。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 15万+

在Spring Boot微服务使用ValueOperations操作Redis String字符串

记录:401 场景:在Spring Boot微服务使用RedisTemplate的ValueOperations操作Redis String字符串。

zhangbeizhen18的博客 1689

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

在Spring Boot微服务使用ValueOperations操作Redis集群String字符串

记录:443 场景:在Spring Boot微服务使用RedisTemplate的ValueOperations操作Redis集群String字符串类型数据。

zhangbeizhen18的博客 2481

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

springboot使用redis

一种为RedisTemplate,这种是有泛型的,泛型类型为<String, String> 或者 <Object, Object> 或者不添加泛型,当用它来向redis服务器中存入String类型的数据时,会出现乱码。序列化只是一种拆装对象的规则,那么这种规则也就多种多样,常见的有JDK(不支持跨语言),json,xml,Hessian等。序列化是将对象转换为可传输字节序列的过程,反序列化是将字节序列还原为原对象的过程.序列化最终的目的是为了对象可以。

2509_94189925的博客 903

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

SpringBoot 使用Redis缓存

SpringBoot 使用Redis缓存 1. 添加依赖 <!-- redis依赖包 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 2. Redis数据库连接配置文件 spring: red

zxg的博客 3120

redis--springboot使用redis

redis--springboot使用redis

余的日常学习 777

SpringBoot 如何使用 Redis 作为缓存?

Redis 是一个高性能的键值对存储系统,它支持多种数据结构,包括字符串、哈希表、列表、集合、有序集合等。快速:Redis 是一个基于内存的数据库,读写速度非常快。可扩展:Redis 支持分布式架构,可以通过横向扩展来提高性能。多样性:Redis 支持多种数据结构,可以应对不同的应用场景。持久化:Redis 支持数据持久化,可以保证数据不会丢失。在本文中,我们介绍了如何在 SpringBoot 中使用 Redis 作为缓存。

程序猿徐师兄的博客 1436

SpringBoot中使用Redis(五个工具操作类)

在resources目录下创建application.yml文件。

wangmengxxw的博客 553

SpringBoot集成Redis

SpringBoot集成Redis,使用Reids存储邮箱验证码概述搭建邮箱验证 概述 Reids面向Java推出了Jedis,提供了与Redis命令对应封装的API,可以在Reids官网下载。 spring-data-redis提供了在spring中通过简单的配置去访问Redis服务。 对Redis底层开发包进行了高度封装,其中的RedisTemplate提供了Redis的各种操作。 spring-data-redis针对Jedis提供了这些功能: 连接池自动管理,提供了高度封装了RedisTempla

lanleihhh的博客 282
上一篇: dea maven打包 install 报错The packaging for this project did not assign a file to the build artifact
下一篇: SpringUtils工具类获取bean
qq_34412985
博客等级 码龄11年 143粉丝 983原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值