当前位置: 首页 > news >正文

redis的客户端

目录

  • redis的客户端
    • 一:jedis
      • 1:jedis的使用步骤:
      • 2:jedis连接池
    • 二:springDataRedis
      • 1:入门使用
      • 2:配置序列化器
      • 3:stringRedisTemplate

redis的客户端

一:jedis

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

1:jedis的使用步骤:

1:引入依赖

2:建立连接

3:执行命令;

4:释放资源:

private redis.clients.jedis.Jedis jedis;
@BeforeEachpublic void setJedis(){jedis =new redis.clients.jedis.Jedis("123.249.00.000",6379);jedis.auth("12345");}@Testpublic void testString(){jedis.set("name","zhangsan");System.out.println("jedis.get(\"name\") = " + jedis.get("name"));}@AfterEachpublic void down(){if (jedis!=null){jedis.close();}}

这里先建立连接,然后执行操作,操作的名称和我们redis命令的名称几乎一样,然后再释放资源,释放资源之前要判断是否为空,不然可能会空指针;

2:jedis连接池

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

public class JedisConnectionFactory {public static final  JedisPool jedisPool;static {JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();jedisPoolConfig.setMaxIdle(8);jedisPoolConfig.setMinIdle(0);jedisPoolConfig.setMaxTotal(8);jedisPool =new JedisPool(jedisPoolConfig,"123.249.86.145",6379,1000,"12345");}public static Jedis getJedisPool(){return jedisPool.getResource();}
}

具体代码:先声明一个连接池对象,在静态代码块中对连接池对象进行初始化,要传入配置信息,首先构造一个配置对象,配置最大连接数,最小连接数,最大连接等待时长,然后在构造一个静态方法能够获取jedis对象,从连接池中获取;

二:springDataRedis

1:入门使用

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

如何使用:

1:引入依赖:

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

2:在配置文件中配置redis相关配置:

spring:redis:host: ipport: 6379password: your_passwordlettuce:pool:max-active: 8max-idle: 8min-idle: 0max-wait: 100ms

3:就能注入redistemplate来使用了:

@Autowired
private RedisTemplate redisTemplate;
@Test
void testString() {redisTemplate.opsForValue().set("name","伟哥");System.out.println("redisTemplate.opsForValue().get(\"name\") = " +redisTemplate.opsForValue().get("name"));
}

2:配置序列化器

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

@Bean
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory connectionFactory) {//创建template对象RedisTemplate<String, Object> stringObjectRedisTemplate = new RedisTemplate<>();//连接工厂stringObjectRedisTemplate.setConnectionFactory(connectionFactory);//创建json序列化器GenericJackson2JsonRedisSerializer genericJackson2JsonRedisSerializer = new GenericJackson2JsonRedisSerializer();//为key配置序列化器stringObjectRedisTemplate.setKeySerializer(RedisSerializer.string());//为hashkey配置stringObjectRedisTemplate.setHashKeySerializer(RedisSerializer.string());//为value配置序列化器stringObjectRedisTemplate.setValueSerializer(genericJackson2JsonRedisSerializer);//为hashvalue配置序列化器stringObjectRedisTemplate.setHashValueSerializer(genericJackson2JsonRedisSerializer);return stringObjectRedisTemplate;
}

3:stringRedisTemplate

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

为了节省空间,我们不使用自动转换json的序列化器,我们需要手动转换,然后我们可以使用stringtemplate,这里面自动帮我们配置了string的序列化器;

@Test
void testUser() {User wfw = new User("wfw", 11);String jsonString = JSON.toJSONString(wfw);stringRedisTemplate.opsForValue().set("user:101",jsonString);String o =  stringRedisTemplate.opsForValue().get("user:100");User user = JSONObject.parseObject(o, User.class);System.out.println("o = " + user);
}
ing o =  stringRedisTemplate.opsForValue().get("user:100");User user = JSONObject.parseObject(o, User.class);System.out.println("o = " + user);
}

相关文章:

redis的客户端

目录 redis的客户端一&#xff1a;jedis1&#xff1a;jedis的使用步骤&#xff1a;2&#xff1a;jedis连接池 二&#xff1a;springDataRedis1:入门使用2&#xff1a;配置序列化器3&#xff1a;stringRedisTemplate redis的客户端 一&#xff1a;jedis 1&#xff1a;jedis的使…...

图片分类标注工具python

图片分类标注工具 运行代码&#xff1a;将代码保存到 Python 文件中并运行。选择文件夹&#xff1a;运行时会弹出对话框&#xff0c;选择要分类的图片文件夹。标注分类&#xff1a;程序会逐张显示图片&#xff0c;你可以在下方输入框中输入类别标签&#xff0c;并点击“Next”…...

Rust命令行,实现自动反编译Android APK包工具

Rust-CLI实现自动反编译APK Rust提供了比较好的CLI接口,可以快速的编写命令行应用, 用于日常的工具类使用。 分享一个用Rust命令行实现自动反编译Android APK包工具&#xff0c;是之前学习Rust写的一个练手小工具&#xff0c;可以快速反编译APK&#xff0c;同时也学习下用Rust…...

10. NSTableView Table 数据表格

表格是非常重要和复杂的一个控件&#xff0c;本节会用大量篇幅来把表格这东西力求讲清楚。 基本设置 表格结构 表格是 OS X 组件中为数不多采用了MVC设计模式来实现的控件&#xff0c;即tableView–dataSource–Delegate&#xff0c;这种分层架构给处理数据带来了极大的便利…...

javase笔记8---File与IO流

File类型 简介 在程序中&#xff0c;使用java.io.File这个类来描述和操作磁盘上的一个文件或文件夹(目录)。 File这个类&#xff0c;能新建、删除、移动&#xff0c;重命名文件或文件夹&#xff0c;也能获取或者修改文件或文件夹的信息(如大小&#xff0c;修改时间等)&#xf…...

docker上传离线镜像包到Artifactory

docker上传离线镜像包到Artifactory 原创 大阳 北京晓数神州科技有限公司 2024年10月25日 17:33 北京 随着docker官方源的封禁&#xff0c;最近国内资源也出现无法拉取的问题&#xff0c;Artifactory在生产环境中&#xff0c;很少挂外网代理去官方源拉取&#xff0c;小编提供…...

【专用名词的离线语音识别在2024年底的解决方法调查-会议签到的补充】

语音识别在会议点名中的使用 概要解决问题的过程不行的一些参考可以的一个package自定义词语的拼音转换遗留的问题 小结 概要 提示&#xff1a;这里可以添加技术概要 这里只实现一个方面,每个android会议设备都可通过语音发送参会者姓名,自动转换成文字添加到人员名单. 语音采集…...

OS基础-

OS基础 内存管理 内核用户设备管理 设备框架I/O子系统网络多媒体 音频视频运维 控制台GUIdebug审计计算机组成 CPU ALUregister SPLRPCR0-R12CPSRcacheclockInterrupt Vector tableIVTRMMU/MPU 内存访问权限配置&#xff0c;支持多进程BUSMEMORYI/O单线程 特点&#xff1a;结构…...

《大型语言模型实战指南:应用实践与场景落地》一文详解大型语言模型的11种微调方法

导读&#xff1a;大型预训练模型是一种在大规模语料库上预先训练的深度学习模型&#xff0c;它们可以通过在大量无标注数据上进行训练来学习通用语言表示&#xff0c;并在各种下游任务中进行微调和迁移。随着模型参数规模的扩大&#xff0c;微调和推理阶段的资源消耗也在增加。…...

嵌入式浏览器 -- Chromium VS Firefox

嵌入式浏览器概念 嵌入式浏览器是嵌入式系统中的核心组件之一&#xff0c;用于为设备提供网络访问能力和内容显示功能。与传统PC浏览器相比&#xff0c;嵌入式浏览器更加注重性能优化和资源效率&#xff0c;同时确保核心功能可用&#xff0c;如HTML渲染、JavaScript支持和多媒…...

权限大、数量多、破坏强、管理难......企业特权访问管理怎么管?

特权账号&#xff0c;通往企业数据大门的“钥匙”。 它权限大&#xff0c;具有高危命令或操作的执行权限&#xff1b; 破坏性强&#xff0c;操作可能影响他人使用或其他系统故障&#xff1b; 信息泄露风险大&#xff0c;操作可能获取别人或其他系统相关隐私信息&#xff1b;…...

UE5 第一人称示例代码阅读0 UEnhancedInputComponent

UEnhancedInputComponent使用流程 我的总结示例分析firstthenand thenfinally&代码关于键盘输入XYZ 我的总结 这个东西是一个对输入进行控制的系统&#xff0c;看了一下第一人称例子里&#xff0c;算是看明白了&#xff0c;但是感觉这东西使用起来有点绕&#xff0c;特此梳…...

如何在Linux下安装和配置Docker

文章目录 安装前的准备在Debian/Ubuntu上安装Docker添加Docker仓库安装Docker验证安装 在CentOS/RHEL上安装Docker安装必要的软件包设置Docker仓库安装Docker启动Docker服务 Docker的基本使用拉取一个镜像运行一个容器 配置Docker创建Docker目录使用非root用户运行Docker 结语 …...

apisix的原理及作用,跟spring cloud gateway有什么区别?

apache APISIX 是一个高性能、可扩展的开源 API 网关&#xff0c;它主要用于处理 API 请求、流量管理、安全控制和服务治理。APISIX 可以将复杂的服务架构中的不同服务通过统一的网关来进行管理和监控&#xff0c;为微服务架构提供了便捷的流量入口管理方式。 APISIX 的原理 …...

华为HarmonyOS实现实时语音识别转文本

场景介绍 将一段音频信息&#xff08;短语音模式不超过60s&#xff0c;长语音模式不超过8h&#xff09;转换为文本&#xff0c;音频信息可以为pcm音频文件或者实时语音。 开发步骤 在使用语音识别时&#xff0c;将实现语音识别相关的类添加至工程。 import { speechRecogni…...

DIY可视化-uniapp悬浮菜单支持拖动、吸附-代码生成器

在Uniapp中&#xff0c;悬浮菜单支持拖动和吸附功能&#xff0c;可以为用户带来更加灵活和便捷的操作体验。以下是对这两个功能的详细解释&#xff1a; 悬浮菜单支持拖动 提高用户体验&#xff1a;用户可以根据自己的需要&#xff0c;将悬浮菜单拖动到屏幕上的任意位置&#x…...

HTTP cookie 与 session

一.Cookie 定义&#xff1a; 是服务器发送到用户浏览器并保存在浏览器上的一小块数据&#xff0c; 它会在浏览器之后向同一服务器再次发起请求时被携带并发送到服务器上。 通常&#xff0c; 它用于告知服务端两个请求是否来自同一浏览器&#xff0c; 如保持用户的登录状态、 …...

智慧停车场导航系统架构及反向寻车系统解决方案

一、系统概述&#xff1a; 随着当前室内定位导航技术在大型公共场所如政务中心、商业综合体、车站中的应用越来越多&#xff0c;人们对智慧停车场的需求也日益凸显出来&#xff0c;并且智慧停车场对大型公共场所智慧化的整体建设起到重要作用。如何更有效提高停车效率&#xf…...

【小程序上传图片封装2024,支持多图,带进度,上传头像】

import config from ./config;// 支持多图&#xff0c;显示进度 export function uploadImages(count 1, sourceType, onLoading null, showProgress false, fileKey file) {return new Promise((resolve, reject) > {wx.chooseMedia({count: count, // 可以选择的图片数…...

[A-14]ARMv8/ARMv9-Memory-内存模型的类型(Device Normal)

ver0.1 [看前序文章有惊喜。] 前言 前面花了很大的精力把ARM构建的VMSA中的几个核心的议题给大家做了介绍,相信大家已经能够理解并掌握ARM的内存子系统的工作原理大致框架。接下来我们会规划一些文章,对ARM内存子系统的一些细节做一下介绍,使ARM的内存子系统更加的丰满。本…...

挑战杯推荐项目

“人工智能”创意赛 - 智能艺术创作助手&#xff1a;借助大模型技术&#xff0c;开发能根据用户输入的主题、风格等要求&#xff0c;生成绘画、音乐、文学作品等多种形式艺术创作灵感或初稿的应用&#xff0c;帮助艺术家和创意爱好者激发创意、提高创作效率。 ​ - 个性化梦境…...

超短脉冲激光自聚焦效应

前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应&#xff0c;这是一种非线性光学现象&#xff0c;主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场&#xff0c;对材料产生非线性响应&#xff0c;可能…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

Java 8 Stream API 入门到实践详解

一、告别 for 循环&#xff01; 传统痛点&#xff1a; Java 8 之前&#xff0c;集合操作离不开冗长的 for 循环和匿名类。例如&#xff0c;过滤列表中的偶数&#xff1a; List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)

UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中&#xff0c;UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化&#xf…...

网站指纹识别

网站指纹识别 网站的最基本组成&#xff1a;服务器&#xff08;操作系统&#xff09;、中间件&#xff08;web容器&#xff09;、脚本语言、数据厍 为什么要了解这些&#xff1f;举个例子&#xff1a;发现了一个文件读取漏洞&#xff0c;我们需要读/etc/passwd&#xff0c;如…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式&#xff0c;自动确定它们的类型。 这一特性减少了显式类型注解的需要&#xff0c;在保持类型安全的同时简化了代码。通过分析上下文和初始值&#xff0c;TypeSc…...

MySQL 索引底层结构揭秘:B-Tree 与 B+Tree 的区别与应用

文章目录 一、背景知识&#xff1a;什么是 B-Tree 和 BTree&#xff1f; B-Tree&#xff08;平衡多路查找树&#xff09; BTree&#xff08;B-Tree 的变种&#xff09; 二、结构对比&#xff1a;一张图看懂 三、为什么 MySQL InnoDB 选择 BTree&#xff1f; 1. 范围查询更快 2…...