Jedis 使用详解(官方原版)
一、配置 Maven 依赖项
Jedis也通过Sonatype作为Maven Dependency 分发。要配置它,只需将以下 XML 代码段添加到您的 pom.xml 文件中。
<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.9.0</version><type>jar</type><scope>compile</scope>
</dependency>二、基本用法示例
1、在多线程环境中使用 Jedis
您不应该使用来自不同线程的同一实例,因为会出现奇怪的错误。有时创建大量Jedis实例还不够好,因为这意味着大量的套接字和连接,这也会导致奇怪的错误。单个Jedis实例不是线程安全的!为了避免这些问题,您应该使用JedisPool,这是一个线程安全的网络连接池。如果完成后将Jedis实例返回到池中,则可以使用池可靠地创建多个Jedis示例。通过这种方式,您可以克服这些奇怪的错误并获得出色的性能。
要使用它,请初始化一个池:
JedisPool pool = new JedisPool(new JedisPoolConfig(), "localhost");
您可以将池静态存储在某个位置,它是线程安全的。
JedisPoolConfig 包括许多有用的 Redis 特定连接池默认值。JedisPool基于Commons Pool 2,所以你可能想看看Commons Pool的配置
您可以通过以下方式使用它:
/// Jedis implements Closeable. Hence, the jedis instance will be auto-closed after the last statement.
try (Jedis jedis = pool.getResource()) {/// ... do stuff here ... for examplejedis.set("foo", "bar");String foobar = jedis.get("foo");jedis.zadd("sose", 0, "car"); jedis.zadd("sose", 0, "bike"); Set<String> sose = jedis.zrange("sose", 0, -1);
}
/// ... when closing your application:
pool.close();如果您不能在资源中使用try,您仍然可以使用Jedis.close()。
Jedis jedis = null;
try {jedis = pool.getResource();/// ... do stuff here ... for examplejedis.set("foo", "bar");String foobar = jedis.get("foo");jedis.zadd("sose", 0, "car"); jedis.zadd("sose", 0, "bike"); Set<String> sose = jedis.zrange("sose", 0, -1);
} finally {// You have to close jedis object. If you don't close then// it doesn't release back to pool and you can't get a new// resource from pool.if (jedis != null) {jedis.close();}
}
/// ... when closing your application:
pool.close();如果 Jedis 是从池中借来的,它将以正确的方法返回到池中,因为它已经确定发生了 JedisConnectionException。 如果 Jedis 不是从池中借来的,它将被断开并关闭。
2、设置主/从分配
启用复制
Redis 主要用于主/从分发。这意味着写入请求必须显式发送到主服务器(redis 服务器),后者将更改复制到从服务器(也是 redis 服务器)。然后,读取请求可以(但不一定)发送给从站,从而减轻了主站的负担。
您可以使用主控形状,如上所示。为了启用复制,有两种方法可以告诉从站它将是给定主服务器的“slaveOf”:
在 Redis 服务器的 Redis 配置文件的相应部分中指定它
在给定的 jedis 实例上(见上文),调用 slaveOf 方法并将 IP(或“localhost”)和端口作为参数传递:
jedis.slaveof("localhost", 6379); // if the master is on the same PC which runs your code
jedis.slaveof("192.168.1.35", 6379); 注意:由于 Redis 2.6 从站默认为只读,因此对它们的写入请求将导致错误。
如果您更改该设置,它们的行为将像普通的 redis 服务器一样,并接受写入请求而不会出错,但更改不会被复制,因此,如果您混合使用 jedis 实例,这些更改有被静默覆盖的风险。
相关文章:
Jedis 使用详解(官方原版)
一、配置 Maven 依赖项Jedis也通过Sonatype作为Maven Dependency 分发。要配置它,只需将以下 XML 代码段添加到您的 pom.xml 文件中。<dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>2.…...
关于Pytorch中的张量学习
关于Pytorch中的张量学习 张量的概念和创建 张量的概念 Tensor是pytorch中非常重要且常见的数据结构,相较于numpy数组,Tensor能加载到GPU中,从而有效地利用GPU进行加速计算。但是普通的Tensor对于构建神经网络还远远不够,我们需…...
基于Transformer的目标检测算法学习记录
前言 本文主要通过阅读相关论文了解当前Transformer在目标检测领域的应用与发展。 谷歌在 ICLR2020 上提出的 ViT(Vision Transformer)是将 Transformer 应用在视觉领域的先驱。从此,打开了Transformer进入CV领域的桥梁,NLP与CV几…...
嵌入式学习笔记——使用寄存器编程实现按键输入功能
文章目录前言模块介绍原理图编程思路前言 昨天,通过配置通用输出模式,实现了LED灯的点亮、熄灭以及流水等操作,解决了通用输出的问题,今天我们再借用最常见的输入模块,按键来实现一个按键控制LED的功能,重…...
打卡小达人之路:Spring Boot与Redis GEO实现商户附近查询
在当今社会,定位服务已经成为了各种应用的重要组成部分,比如地图、打车、美食等应用。如何在应用中实现高效的附近商户搜索功能呢?传统的做法是将商户的经纬度信息存储在关系型数据库中,然后使用SQL查询语句实现附近商户搜索功能。…...
Apache HTTP Server <2.4.56 mod_proxy_uwsgi 模块存在请求走私漏洞(CVE-2023-27522)
漏洞描述 Apache HTTP Server 是一个Web服务器软件。 该项目受影响版本存在请求走私漏洞。由于mod_proxy_uwsgi.c 中uwsgi_response方法对于源响应头缺少检查,当apache启用mod_proxy_uwsgi后,攻击者可利用过长的源响应头等迫使应转发到客户端的响应被截…...
JUC并发编程设计模式
一、保护性暂停 1.1 定义 即Guarded Suspension,用在一个线程等待另一 个线程的执行结果 要点 ● 有一个结果需要从一个线程传递到另一 个线程,让他们关联同一一个GuardedObject ● 如果有结果不断从一个线程到另一个线程那么可以使用消息队列(生产者…...
HTTPS加密解析
日升时奋斗,日落时自省 目录 1、加密解释 2、对称加密 3、非对称加密 4、证书 HTTPS(HyperText Transfer Protocol over Secure Socket Layer)也是一个应用层协议,是在HTTP协议的基础上引入了一个加密层 HTTP协议内容都是按…...
Python每日一练(20230309)
目录 1. 删除有序数组中的重复项 ★ 2. 二叉树的最小深度 ★★ 3. 只出现一次的数字 II ★★ 🌟 每日一练刷题专栏 C/C 每日一练 专栏 Python 每日一练 专栏 1. 删除有序数组中的重复项 给你一个有序数组 nums ,请你原地删除重复出现的元素…...
哈希表题目:数组的度
文章目录题目标题和出处难度题目描述要求示例数据范围解法思路和算法代码复杂度分析题目 标题和出处 标题:数组的度 出处:697. 数组的度 难度 4 级 题目描述 要求 给定一个非空且只包含非负数的整数数组 nums\texttt{nums}nums,数组的…...
初识rollup 打包、配置vue脚手架
rollup javascript 代码打包器,它使用了 es6 新标准代码模块格式。 特点: 面向未来,拥抱 es 新标准,支持标准化模块导入、导出等新语法。tree shaking 静态分析导入的代码。排除未实际引用的内容兼容现有的 commonJS 模块&#…...
软考网络工程师证书有用吗?
当然有用,但是拿到网络工程师证书的前提是对你自己今后的职业发展有帮助,用得到才能对你而言发挥它最大的好处。软考证书的具体用处:1.纳入我国高校人才培养和教学体系目前,软考已经被纳入高校人才培养和教学体系。在很多高校中&a…...
postgresql 自动备份 bat实现
postgres数据据备分,用cmd命令有些烦,写了个bat实现 BAT脚本中常用的注释命令有rem、@rem和:: rem、@rem和::用法都很简单,直接在命令后加上要注释的语句即可。例如下图,语言前加了rem,运行BAT时就会自动忽略这个句子。需要注释多行时,每行前面都要加上rem、@rem和::。…...
gdb:在命令行中会莫名暂停;detach-on-fork
这个没有捕获到断点的原因是,可能是多线程的问题,需要设置: set detach-on-fork off On Linux, if you want to debug both the parent and child processes, use the command: set detach-on-fork on/off on 默认设置,gdb会放弃子线程(或者父线程,受follow-fork-mode的…...
【3.9】RedisAOF日志、字符串、操作系统进程管理
4. 进程管理 进程、线程基础知识 什么是进程 我们编写的代码只是一个存储在硬盘的静态文件,通过编译后就会生成二进制可执行文件,当我们运行这个可执行文件后,它会被装载到内存中,接着 CPU 会执行程序中的每一条指令,…...
安装mayavi的成功步骤
这篇文章是python 3.6版本,windows系统下的安装,其他python版本应该也可以,下载对应的包即可。 一定不要直接pip install mayavi,这个玩意儿对vtk的版本有要求。 下载whl包 搞了很久不行,咱也别费那个劲了࿰…...
vue+echarts.js 实现中国地图——根据数值表示省份的深浅——技能提升
最近在写后台管理系统,遇到一个需求就是 中国地图根据数值 展示深浅颜色。 效果图如下: 直接上代码: 1.html部分 <div id"Map"></div>2.css部分——一定要设置尺寸 #Map {width: 100%;height: 400px; }3.js部分 …...
[oeasy]python0104_指示灯_显示_LED_辉光管_霓虹灯
编码进化 回忆上次内容 x86、arm、riscv等基础架构 都是二进制的包括各种数据、指令 但是我们接触到的东西 都是屏幕显示出来的字符 计算机 显示出来的 一个个具体的字型 计算机中用来展示的字型 究竟是 如何进化的 呢?🤔🤔 模拟电路时…...
Easy Deep Learning——卷积层
为什么需要卷积层,深度学习中的卷积是什么? 在介绍卷积之前,先引入一个场景 假设您在草地上漫步,手里拿着一个尺子,想要测量草地上某些物体的大小,比如一片叶子。但是叶子的形状各异,并且草地非…...
深入分析@Bean源码
文章目录一、源码时序图二、源码解析1. 运行案例程序启动类2. 解析AnnotationConfigApplicationContext类的AnnotationConfigApplicationContext(Class<?>... componentClasses)构造方法3. 解析AbstractApplicationContext类的refresh()方法4. 解析AbstractApplicationC…...
打造直播APP礼物列表丝滑体验:SmartRefreshLayout实战指南
打造直播APP礼物列表丝滑体验:SmartRefreshLayout实战指南 【免费下载链接】SmartRefreshLayout 🔥下拉刷新、上拉加载、二级刷新、淘宝二楼、RefreshLayout、OverScroll,Android智能下拉刷新框架,支持越界回弹、越界拖动…...
计算机毕设 java 基于 BS 架构的实验室开放管理系统 java 基于 B/S 架构的实验室预约管理系统 java 基于 B/S 架构的智能实验室管理系统
计算机毕设 java 基于 BS 架构的实验室开放管理系统 t780o9(配套有源码 程序 mysql 数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联 xi 可分享当今社会已步入科技进步与经济快速发展的新时期,计算机技术对各领域的影…...
QT5集成libmodbus:多线程优化主从机通信的实践指南
1. 为什么需要多线程优化libmodbus通信 在工业监控软件开发中,我们经常遇到一个典型场景:上位机需要实时采集多个下位机的数据,同时还要保证用户界面的流畅响应。使用QT5集成libmodbus时,很多开发者会直接在主线程中实现数据采集逻…...
FFmpeg5.0源码解析——深入探索MOV文件格式的封装与解封装机制
1. MOV文件格式的前世今生 第一次接触MOV格式还是在十年前处理iPhone拍摄的视频时,这种由苹果公司开发的容器格式就像个精致的黑盒子,表面看着简单,打开后才发现内部结构精妙绝伦。和MP4这对"孪生兄弟"都基于ISO基础媒体文件格式(I…...
Qwen-Image-2512保姆级教程:从零开始构建个人像素艺术AI工作室
Qwen-Image-2512保姆级教程:从零开始构建个人像素艺术AI工作室 1. 为什么选择Qwen-Image-2512做像素艺术 像素艺术近年来在游戏开发、NFT创作和数字艺术领域越来越受欢迎。传统手工绘制像素图需要专业美术功底,而Qwen-Image-2512结合Pixel Art LoRA的技…...
QLVideo终极指南:三步让Mac视频预览功能全面升级
QLVideo终极指南:三步让Mac视频预览功能全面升级 【免费下载链接】QuickLookVideo This package allows macOS Finder to display thumbnails, static QuickLook previews, cover art and metadata for most types of video files. 项目地址: https://gitcode.com…...
Scoop国内镜像加速全攻略:从安装失败到高效下载的完整解决方案
1. Scoop安装失败的常见原因分析 第一次接触Scoop的Windows用户,90%都会在安装阶段卡壳。我刚开始用的时候也踩过不少坑,后来帮团队部署开发环境时更是见识了各种奇葩错误。总结下来主要有三类典型问题: 网络连接问题是最常见的拦路虎。由于S…...
WarcraftHelper终极指南:魔兽争霸III现代化增强解决方案
WarcraftHelper终极指南:魔兽争霸III现代化增强解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper WarcraftHelper是一款专为经典游戏…...
AIGlasses_for_navigation视频处理应用:使用AE制作导航效果演示片段视频
AIGlasses_for_navigation视频处理应用:使用AE制作导航效果演示片段视频 你有没有想过,那些看起来科技感十足、路径光效流畅的AR导航演示视频是怎么做出来的?是不是觉得需要专业的动画团队才能实现? 其实,借助像Afte…...
TSM行为识别实战:从UCF101抽帧到模型训练,保姆级避坑指南(附完整代码)
TSM行为识别实战:从UCF101抽帧到模型训练全流程解析 行为识别作为计算机视觉领域的重要研究方向,正在智能监控、人机交互、体育分析等场景中发挥越来越大的作用。本文将手把手带你完成基于TSM(Temporal Shift Module)模型的行为识…...
