SpringBoot项目Redis使用

news2024/11/26 11:56:43

SpringBoot项目Redis使用

引入依赖

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

对Redis的信息进行配置

  redis:
    database: 0 # 使用Redis的哪一个数据库,0-15 任选
    port: 6379 # 自己的Redis配置的端口
    host: localhost # 自己Redis的网络自己,我这里是本地
    password: xxxxxxx # 自己Redis配置的密码
    lettuce: # 关于lettuce这个默认也行
      pool:
        min-idle: 1
        max-active: 10
        max-idle: 10

为方便使用设置序列化器,使用时统一用RedisTemplate<String,Object>模式

这里就是注册一个Redis序列化的Bean方便使用

@Configuration
public class RedisConfig {
    @Bean
    public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) {
        // 我们为了自己开发方便,一般直接使用 <String, Object>
        RedisTemplate<String, Object> template = new RedisTemplate<String, Object>();
        template.setConnectionFactory(redisConnectionFactory);
        // Json序列化配置
        Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class);
        ObjectMapper om = new ObjectMapper();
        om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
        om.activateDefaultTyping(LaissezFaireSubTypeValidator.instance,ObjectMapper.DefaultTyping.NON_FINAL);
        jackson2JsonRedisSerializer.setObjectMapper(om);
        // String 的序列化
        StringRedisSerializer stringRedisSerializer = new StringRedisSerializer();
        // key采用String的序列化方式
        template.setKeySerializer(stringRedisSerializer);
        // hash的key也采用String的序列化方式
        template.setHashKeySerializer(stringRedisSerializer);
        // value序列化方式采用jackson
        template.setValueSerializer(jackson2JsonRedisSerializer);
        // hash的value序列化方式采用jackson
        template.setHashValueSerializer(jackson2JsonRedisSerializer);
        template.afterPropertiesSet();
        return template;
    }
}

到这里基本就可以使用了

使用

我这里进行测试使用

使用key:string-value:string模式

首先直接使用一般的设置Value,这里的代码就是设置一对键值

@SpringBootTest
class SpringbootTemplateApplicationTests {

	@Resource
	RedisTemplate<String,Object> redisTemplate ;
	@Test
	void testRedis(){
		String phone = "12345678901";
		redisTemplate.opsForValue().set("test:code:"+ phone,"123456");
 		System.out.println(redisTemplate.opsForValue().get("test:code:"+phone));
	}
}

结果:

在这里插入图片描述

用图形化工具查看

符合预期的结果
在这里插入图片描述

使用Hash模式

使用代码:

@Test
	void testRedisHashValue(){
		String token = UUID.randomUUID().toString();
		User user = new User(1235432l,"xwhking","password","xiaoxiaowei");
		Map<String, Object> stringObjectMap = BeanUtil.beanToMap(user);
		redisTemplate.opsForHash().putAll("test:user:"+token,stringObjectMap);
		System.out.println(redisTemplate.opsForHash().entries("test:user:"+token));
	}

打印结果:

在这里插入图片描述

图形化结果查看:

在这里插入图片描述

直接存一个一个对象呢?会转化为JSON进行存储

只不过对这里取出来的值进行使用的时候要进行强制类型转换
使用代码:

void testRedisJson(){
		String token = UUID.randomUUID().toString();
		User user = new User(1235432l,"xwhking","password","xiaoxiaowei");
		redisTemplate.opsForValue().set("test:user:"+token,user);
		System.out.println(redisTemplate.opsForValue().get("test:user:"+token));  
	}

运行结果:

在这里插入图片描述

图形化结果:

在这里插入图片描述

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

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

相关文章

Everything + Cpolar,打造在线搜索的终极神器

文章目录 前言1. 下载安装注册cpolar2. Everything安装和设置2.1 进入Everything官网进行下载2.2 对Everything文件进行设定 3. 创建cpolar内网穿透隧道4. 公网访问测试Everything5. 固定连接公网地址 前言 你还在用Windows资源管理器自带的搜索工具来搜索文件吗&#xff1f;这…

B树的插入和删除

1.B树的插入 1.核心要求 对m阶B树——除根节点外&#xff0c;结点关键字个数 [ m / 2 ] − 1 ≤ n ≤ m − 1 [m/2] -1≤n≤m-1 [m/2]−1≤n≤m−1子树0<关键字1<子树1<关键字2<子树2<… 新元素一定是插入到最底层“终端节点”&#xff0c;用“查找”来确定插…

【Spring Boot 源码学习】OnBeanCondition 详解

Spring Boot 源码学习系列 OnBeanCondition 详解 引言往期内容主要内容1. getOutcomes 方法2. getMatchOutcome 方法2.1 ConditionalOnBean 注解处理2.2 ConditionalOnSingleCandidate 注解处理2.3 ConditionalOnMissingBean 注解处理 3. getMatchingBeans 方法 总结 引言 上篇…

MQ - 15 集群篇_如何构建分布式的消息队列集群(下)

文章目录 导图Pre概述元数据存储服务设计选型基于第三方存储引擎集群内部自实现元数据存储ZooKeeper 的集群构建Kafka 的集群构建基于 ZooKeeper 的集群基于 KRaft 的集群缩容的处理方式总结导图 Pre 接着 MQ - 14 集群篇_如何构建分布式的消息队列集群(上)</

唯品会获得vip商品详情 API 返回值说明(唯品会商品价格销量详情图主图)

item_get-获得vip商品详情 vip.item_get 请求地址 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地址中&#xff09;[item_search,item_get,item…

threejs给3d模型中的物体换肤(修改材质)

变成这样 this.otherModel.traverse(function (child) {if (child instanceof THREE.Mesh && child.name Cylinder240) {// 导入纹理const textureLoader new THREE.TextureLoader();const floorColortextureLoader.load(require(../../../public/img/color.jpg));co…

在Linux中安装nginx-1.20.1+php-7.4.28(增加扩展)

NginxPHP安装在公网IP为x.x.x.x的服务器上 需要下载安装的软件版本&#xff1a;nginx-1.20.1php-7.4.28 需要增加的PHP扩展如下&#xff1a; 在编译安装php-7.4.28时加上的pcntl&#xff1b; 单独下载安装的Wxwork_finance_sdk&#xff1b;&#xff08;在编译安装php-7.4.2…

django和celery的项目,nginx和uwsgi协议,在通过api端口进行deeplearning任务的训练和排队

问题汇总 redis 安装django和celery的安装nginx和uwsgi的安装 一. Django 的项目&#xff0c;有个runserver直接起了一个webserver&#xff0c;为什么还要Nginx包一层&#xff0c;起一个webserver呢&#xff1f; Nginx的性能比Django自带的Webserver的性能要好&#xff0c;pyt…

Jenkins用户管理(二):不同用户分配不同的任务访问权限

需求:不同用户访问到不同的Jenkins任务。 依赖插件:Role-based Authorization Strategy 1. 插件安装 进入【系统管理】-【插件管理】-【可用插件】,搜索Role-based Authorization Strategy进行安装,随后重启jenkins 2. 全局安全配置 进入【系统管理】-【全局安全配置】,【…

引用js文件实现汉字转拼音

先看效果 具体需求是 第一个文本框输入汉字&#xff0c;第三个显示拼音&#xff0c; 先引用js <script src"/js/pinyinutil.js"></script> html这样 <el-input v-model"inputText" style"width:220px" placeholder"请输入…

2023智慧云打印小程序源码多店铺开源版 +前端

智慧自助云打印系统/智慧云打印小程序源码 前端 这是一款全新的基于Thinkphp的最新自助打印系统&#xff0c;最新UI界面设计的云打印小程序源码

前端开发必备:icon封装技巧

main.js import svgIcon from /components/SvgIcon Vue.component(svg-icon-full, svgIcon) const requireAll requireContext > requireContext.keys().map(requireContext) const req require.context(/assets/icons/svg, false, /\.svg$/) // icon位置 requireAll(re…

【运维 Pro】时序场景实践与原理 - 2. 宽表,窄表与 JSON 字段

【运维Pro】: 由 YMatrix 售前和售后团队负责的栏目。除了介绍日常的数据库运维和使用知识&#xff0c;我们更希望能够通过介绍这些知识背后的原理&#xff0c;让大家和我们一起感知数据库的美妙。 摘要 在上一期 《时序场景实践与原理 - 1.分布与分区》中&#xff0c;我们围…

探索智能应用的基石:多模态大模型赋能文档图像处理

目录 0 写在前面1 文档图像分析新重点2 token荒&#xff1a;电子文档助力大模型3 大模型赋能智能文档分析4 文档图像大模型应用可能性4.1 专有大模型4.2 多模态模型4.3 设计思路 总结 0 写在前面 中国智能产业高峰论坛(CIIS2023)旨在为政企研学各界学者专家提供同台交流的机会…

Denoising Diffusion Autoencoders are Unified Self-supervised Learners

Denoising Diffusion Autoencoders are Unified Self-supervised Learners (Paper reading) Weilai Xiang, Beihang University, arXiv23, Code, Paper 1. 前言 受最近扩散模型进展的启发&#xff0c;这让人想起去噪自编码器&#xff0c;我们研究了它们是否可以通过生成预训…

1952-2018年中国各省份人均GDP数据(消涨处理)

1952-2018年中国各省份人均GDP数据&#xff08;消涨处理&#xff09; 1、时间&#xff1a;1952-2018年 2、范围&#xff1a;30省市 3、指标&#xff1a;人均GDP 4、来源&#xff1a;《新中国60周年统计汇编》和各省年鉴 5、指标解释&#xff1a; 过程为环比人均GDP指数转…

【Vue】使用vue-cli搭建SPA项目的路由,嵌套路由

一、SPA项目的构建 1、前期准备 我们的前期的准备是搭建好Node.js,测试&#xff1a; node -v npm -v2、利用Vue-cli来构建spa项目 2.1、什么是Vue-cli Vue CLI 是一个基于 Vue.js 的官方脚手架工具&#xff0c;用于自动生成vue.jswebpack的项目模板&#xff0c;它可以帮助开发者…

openGauss学习笔记-73 openGauss 数据库管理-创建和管理索引

文章目录 openGauss学习笔记-73 openGauss 数据库管理-创建和管理索引73.1 背景信息73.2 操作步骤73.2.1 创建索引73.2.2 修改索引分区的表空间73.2.3 重命名索引分区73.2.4 查询索引73.2.5 删除索引73.2.6 创建索引的方式73.2.6.1 创建普通索引73.2.6.2 创建多字段索引73.2.6.…

升级iOS17后可以降级吗?iOS17退回iOS16方法教程分享

iOS 17已上线几天&#xff0c;从网上用户的反馈和媒体机构的报告来看&#xff0c;iOS17系统对旧机型来说并不友好&#xff0c;除了电池续航下降以外&#xff0c;占用大量储存空间&#xff0c;BUG也不少。 苹果于 9 月 7 日发布了 iOS 16.6.1 版本&#xff0c;如果升级iOS17后发…

opencv实现仿射变换

什么是仿射变换&#xff1f; 代码实现 import numpy as np import cv2 as cv import matplotlib.pyplot as plt#设置字体 from pylab import mpl mpl.rcParams[font.sans-serif] [SimHei]#图像的读取 img cv.imread("lena.png")#仿射变换 rows , cols img.shape[…