如何通过Java操作Redis?——Jedis!

简介

在redis命令行客户端中操作redis是否可行?可行,但不方便且不是主流的方式。最终还是要通过Java代码来操作~

Redis的底层通信是遵守RESP协议的,一些第三方的库就实现了这些协议,然后封装好API,程序猿通过封装好的API,就可以很方便的与Redis服务器进行通信。本次使用的是Jedis。

引入依赖

在pom.xml文件中,引入jedis的依赖。

        <dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>4.4.2</version></dependency>

常用API

连接相关

与JDBC类似,需要先配置连接地址,即url,然后从中获取连接。(毕竟Redis也叫内存数据库)

首先我们需要创建一个Jedis连接池,然后从池中取出一个连接,后续通过这个连接来和服务器进行交互。

方法功能
JedisPool jedisPool = new JedisPool("url")创建Jedis连接池,此处URL为Redis服务器的ip+port
Jedis jedis = jedisPool.getResource()从连接池中获取一个连接
public class JedisTest {public static void main(String[] args) {//创建连接池JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");//获取连接Jedis jedis = jedisPool.getResource();//释放连接jedis.close();}
}

创建完连接后,就可以操作Redis了,接下来将从最常用的五大类型进行讲解。

后续只需要操作jedis对象的一些API,即可操作Redis服务器了。

而jedis对象的API基本与指令的形式是一致的,因此熟悉指令操作就能很好使用jedis了。

Stirng

在String类型中常用的指令有:get,set,mget,mset,getrange,setrange,append,incr,decr.

List

在List类型中常用的指令有:lpush,lpop,lrange,rpush,rpop,blpop,brpop,llen.

Set

在Set类型中常用的指令有:sadd,smembers,sismember,scard,spop,sinter,sinterstore

Hash

在Hash类型中常用的指令有:hset,hget,hexists,hdel,hkeys,hvals,hmset,hmget.

Zset

在Zset类型中常用的指令有:zadd,zrange,zrem,zscore,zrank.


在Jedis中方法基本与命令保持一致,因此很容易上手。

以上指令的功能可以通过官方文档进行查看:Commands | Docs

这些指令当然也对应着Jedis的一个API:在idea中定位查看即可.

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

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

相关文章

IEC62056标准体系简介-4.IEC62056-53 COSEM应用层

为在通信介质中传输COSEM对象模型&#xff0c;IEC62056参照OSI参考模型&#xff0c;制定了简化的三层通信模型&#xff0c;包括应用层、数据链路层&#xff08;或中间协议层&#xff09;和物理层&#xff0c;如图6所示。COSEM应用层完成对COSEM对象的属性和方法的访问&#xff…

01MFC建立单个文件类型——画线

文章目录 选择模式初始化文件作用解析各初始化文件解析类导向创建鼠标按键按下抬起操作函数添加一个变量记录起始位置注意事项代码实现效果图虚实/颜色线选择模式 初始化文件作用解析 运行: 各初始化文件解析 MFC(Microsoft Foundation Classes)是一个C++类库,用于在Win…

昇思25天学习打卡营第16天|基于MindSpore通过GPT实现情感分类

今天的这个代码几乎没有任何解释&#xff0c;结合之前GPT生成文本摘要的代码。 大概记录一下 import numpy as np # 导入NumPy库def process_dataset(dataset, tokenizer, max_seq_len512, batch_size4, shuffleFalse): # 判断当前设备是否为Ascend&#xff0c;如果是ascen的…

防御课综合实验

实验拓扑&#xff1a; 实验要求&#xff1a; 1、DMZ区内的服务器&#xff0c;办公区仅能在办公时间内&#xff08;9点到18点&#xff09;可以访问&#xff0c;生产区的设备全天可以访问 2、生产区不允许访问互联网&#xff0c;办公区和游客区允许访问互联网 3、办公区设备10…

二叉平衡树(左单旋,右单旋,左右双旋、右左双旋)

一、AVL树&#xff08;二叉平衡树&#xff1a;高度平衡的二叉搜索树&#xff09; 0、二叉平衡树 左右子树高度差不超过1的二叉搜索树。 public class AVLTree{static class AVLTreeNode {public TreeNode left null; // 节点的左孩子public TreeNode right null; // 节点的…

Java 中的异常处理机制是如何工作的?请解释 try-catch-finally 的基本用法?

Java中的异常处理机制是确保程序稳健性的重要组成部分&#xff0c;它允许程序在遇到错误或异常情况时&#xff0c;能够优雅地处理问题&#xff0c;而不是直接崩溃。 这一机制的核心在于使用try-catch-finally结构&#xff0c;以及通过throw和throws关键字来抛出和声明异常。 …

基于Transformer的端到端的目标检测 | 读论文

本文正在参加 人工智能创作者扶持计划 提及到计算机视觉的目标检测&#xff0c;我们一般会最先想到卷积神经网络&#xff08;CNN&#xff09;&#xff0c;因为这算是目标检测领域的开山之作了&#xff0c;在很长的一段时间里人们都折服于卷积神经网络在图像处理领域的优势&…

Vue2.0和Vue3.0的区别?

Vue.js 3.0 相较于 Vue.js 2.0 在多个方面进行了改进和优化&#xff0c;主要包括以下几点&#xff1a; 性能提升&#xff1a; Vue 3.0 使用了新的响应式系统&#xff0c;称为“Proxy-based”&#xff0c;相比于 Vue 2.0 的“Object.defineProperty”&#xff0c;更加高效。 编…

【深度学习基础】安装包报错——MAC M3-MAX芯片安装scikit-learn库报错。

目录 一、问题描述二、解决方法 一、问题描述 首先想安装scikit-learn库在mac终端显示顺利安装完成&#xff0c;但是测试的时候报错如下所示&#xff1a; /opt/anaconda3/envs/dtc/bin/python /Users/chenfaquan/PycharmProjects/TimeSeries/data_create.py Traceback (most…

论文 | REACT: SYNERGIZING REASONING AND ACTING INLANGUAGE MODELS

本文首先认为&#xff0c;到目前为止&#xff0c;LLM 在语言理解方面令人印象深刻&#xff0c;它们已被用来生成 CoT&#xff08;思想链&#xff09;来解决一些问题&#xff0c;它们也被用于执行和计划生成。 尽管这两者是分开研究的&#xff0c;但本文旨在以交错的方式将推理…

JSP入门基础

JSP入门基础 软件开发环境这门课程的复习资料 Web开发技术概述 URL的组成部分 协议、主机DNS名或IP地址和文件名 Tomcat服务器 Tomcat服务器的默认端口号是8080 概念 软件开发环境是围绕着软件开发的一定目标而组织在一起的一组相关软件工具的有机集合 JSP和HTML的区别…

range()用法

range(n)&#xff1a;是Python中的函数&#xff0c;作用是可以生成 [0, n)之间的正数range(a,b) :生成[a,b)之间的正数数字&#xff0c;不包含brange(start, end, step)&#xff1a;生成的数值规则--- [start, end) 步长是 step,默认 1 详见&#xff1a;http://t.csdnimg.cn/7…

科研入门笔记

自学参考&#xff1a; 沐神论文精读系列 如何读论文 通常&#xff0c;一篇论文的结构为&#xff1a; title标题abstract摘要introduction介绍method方法experiments实验conclusion结论 一篇论文可以考虑读1~3遍 第一遍 海选&#xff1a;标题、摘要、结论&#xff0c;选读方…

SPE连接器技术革新汽车制造业

概述 新的SPE标准在汽车制造业中的应用正日益受到重视&#xff0c;它不仅推动了汽车通信技术的革新&#xff0c;还对汽车性能测试方法产生了深远影响。本文将详细探讨SPE标准在汽车制造业中的应用案例分析&#xff0c;以及它对供应链的挑战与机遇。 SPE标准在汽车制造业中的应…

[leetcode]subarray-product-less-than-k 乘积小于K的子数组

. - 力扣&#xff08;LeetCode&#xff09; class Solution { public:int numSubarrayProductLessThanK(vector<int>& nums, int k) {if (k 0) {return 0;}int n nums.size();vector<double> logPrefix(n 1);for (int i 0; i < n; i) {logPrefix[i 1] …

揭秘!chatGPT核心技术应用

2022年11月30日&#xff0c;可能将成为一个改变人类历史的日子——美国人工智能开发机构OpenAI推出了聊天机器人ChatGPT-3.5&#xff0c;将人工智能的发展推向了一个新的高度。2023年11月7日&#xff0c;OpenAI首届开发者大会被称为“科技界的春晚”&#xff0c;吸引了全球广大…

js 时间单位秒转时分秒方法封装。00:00:00

1.方法封装 /*** 秒数转时分秒*/ function formatSeconds(t) {let h parseInt(${t / 60 / 60})let m parseInt(${t / 60 % 60})let s parseInt(${t % 60})//三元表达式 补零 如果小于10 则在前边进行补零 如果大于10 则不需要补零h h < 10 ? 0 h : hm m < 10 ?…

prometheus回顾(2)--如何使用Grafana对接Prometheus数据源的详细过程,清晰易懂。

文章目录 Grafana简介什么是GrafanaGrafana 能做什么&#xff1f;什么时候我们会用到Grafana?Prometheus有图形化展示&#xff0c;为什么我们还要用Grafana? 环境操作步骤一、Grafana安装二、Grafana数据源Prometheus添加三、Grafana添加数据仪表盘补充、如何查找仪表盘 Graf…

在Linux下直接修改磁盘镜像文件的内容

背景 嵌入式Linux系统通常在调试稳定后&#xff0c;会对磁盘&#xff08;SSD、NVME、SD卡、TF卡&#xff09;做个镜像&#xff0c;通常是.img后缀的文件&#xff0c;以后组装新设备时&#xff0c;就将镜像文件烧录到新磁盘即可&#xff0c;非常简单。 这种方法有个不便之处&a…

Oracle学习笔记

Oracle 一、简介&#xff1a; 特点&#xff1a; 多用户、大事务量的事务处理 数据安全性和完整性控制 支持分布式数据处理 可以移植性 Oracle 19c 安装 登录甲骨文&#xff0c;安装Oracle 解压压缩包 安装 完毕 此处账户&#xff1a;qfedu 密码&#xff1a;wang8218.…