初识redis:学习Java客户端

news2024/9/24 7:20:11

Redis服务器在官网公开了使用的协议,叫做RESP。任何一个第三方都可以通过上述的协议,来实现出一个和redis服务器通信的客户端程序。

Java生态中,封装好了RESP协议,实现的redis客户端是有很多的,此处使用的是jedis(而且jedis提供的api和redis命令是高度一致的)。

目录

引入依赖

ssh端口转发

jedis通用命令

String类型

mset mget

getrange setrange

append

incr decr

Hash类型

hset  hget

hexists

hdel

hkeys  kvals

hmget  hmset

List类型

lpush rpush lrange 

lpop rpop

blpop

llen

Set类型

sadd  smembers

sismember

scard

spop

sinter

sinterstore

Zset类型

zadd  zrange

zcard

zrem

zscore

zrank


引入依赖

第一步就是在IDEA的xml文件中引入maven中的jedis依赖:

但是需要注意的是:在linux中,我们的linux云服务器把6379端口保护起来了,redis服务器使用的端口就是6379,也就是说我们访问不了在linux上的云服务器。

如果直接把6379端口开放,很容易就被入侵,于是就有了以下的几个办法:

  • 直接让Java程序在linux上运行
  • 配置ssh端口转发,把云服务器的redis端口映射到本地主机

我们重点讲第二种方式,ssh端口转发。

ssh端口转发

配置ssh端口转发,把云服务器的redis端口映射到本地主机,此时客户端的程序访问的127.0.0.1:8888,就相当于是访问linux服务器的6379端口

我们在此只进行简单的配置,后续就把云服务器的端口当成一个本地的端口使用即可。

连接完成以后,在自己电脑中可以使用netstat命令查看本地这里的8888端口有没有工作:


 

jedis通用命令

接下来会介绍一部分命令在代码中的操作,都是比较重要的命令~

在main中,使用Jedis客户端来创建一个连接池(JedisPool),用于连接到Redis服务器。

JedisPool jedisPool = new JedisPool("tcp://127.0.0.1:8888");

String类型

mset mget

 jedis的用法规则,和redis高度统一。此处我们使用List来接收jedis.mget返回的数组。

getrange setrange

append

incr decr

Hash类型

hset  hget

要注意,此处的处理方式是先构造一个Map,把这个Map通过hset的方式存进去。

hexists

此处的hset是直接通过设置key、field、value的方式来添加元素的。

hdel

此处hdel是可以一次性删除多个元素。

HDEL 命令用于删除哈希表中的一个或多个字段(field),而不是直接删除值(value)。当一个字段被删除后,与该字段关联的值(value)也会随之被删除。

hkeys  kvals

一个是获取所有的key,一个是获取所有的value。要注意这个操作十分危险,有可能造成卡顿。

hmget  hmset

由于现在hset可以做到一次设置多个field和value,所以hmset几乎废弃了。

List类型

lpush rpush lrange 

头插、尾插的结果正好相反。

lpop rpop

分别是从头删除和从尾删除,一次删除一个。

blpop

阻塞删除,当一有元素就立马执行删除。

llen

Set类型

sadd  smembers

sismember

scard

获取集合中的元素个数。

spop

不写count参数的时候,随机删除一个元素

sinter

输出交集。

sinterstore

sinterstore是把输出放到额外的一个key中。

Zset类型

Zset是有序集合。

zadd  zrange

zadd的用法比较复杂,添加元素的时候,既要添加元素又要添加分数。

zcard

获取有序集合的元素个数。

zrem

删除指定元素。

"Tuple"(元组)通常指的是一个不可变序列,它可以包含不同类型的元素,并且元素的顺序是固定的。

zscore

查询指定元素的分数。

zrank

查询元素的下标。

不难发现,jedis和redis使用几乎是一样的。这些使用方法都不需要去背,只需要在redis的网站进行查询就可以了。

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

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

相关文章

操作系统:实验三进程间通信实验

一、实验目的 1、了解什么是信号。 2、熟悉LINUX系统中进程之间软中断通信的基本原理。 3、理解进程的同步关系。 4、掌握用信号实现进程间的同步操作。 5、了解什么是管道。 6、熟悉UNIX/LINUX支持的管道通信方式。 二、实验内容 1、阅读下列程序,执行程序…

【js逆向专题】1.js语法基础

小节目标: 逆向工具准备熟悉 逆向的基本过程熟悉 JavaScript语法 一.前期准备 1. 技术准备 python基础语法爬虫基础功底JavaScript基础语法知识(可以自己偷偷的学习一些) 2. 工具准备 node解释器 官网地址:https://nodejs.org/zh-cn (推荐安装版本16版本) 把提供的软件…

网络层 IV(ARP、DHCP、ICMP)【★★★★★★】

(★★)代表非常重要的知识点,(★)代表重要的知识点。 一、地址解析协议(ARP)(★★) 在局域网中,由于硬件地址已固化在网卡上的 ROM 中,因此常常将…

Gartner报告解读:如何帮助企业完善数据分析与治理路线图

Gartner服务于全球100多个国家和地区的14,000余家机构,是一家深受客户信赖、观点客观的研究顾问公司。Garnter洞察、建议和工具可帮助您发现创新机遇,完成关键优先任务,助您成为企业不可或缺的战略专家和价值创造者。该公司是标普 500 指数成…

ET6框架(八)事件系统

文章目录 一、事件的定义二、定义异步事件 一、事件的定义 我们打开Client > Unity.Model > Codes > Model > Demo > EventType.cs 即可以查看目前工程中的事件 我们可以此添加事件结构体 我们还需要定义一个事件接收方法,创建路径文件夹及脚本 …

84、 k8s的pod基础+https-harbor

一、pod基础: pod进阶:探针(面试必问—扩缩容,挂载) 1.1、pod的定义 pod是k8s里面的最小单位,pod也是最小运行容器的资源对象。 容器时基于pod在k8s集群当中工作。 在k8s集群当中,一个pod就…

基于Android+SQLite数据库开发Java考试App

项目简介 Java课程考试App是基于AndroidStudio和SQLite数据库开发的一款App可以实现教师考生双端登录并使用相应功能。以Java课程作为设计主题,针对它们设计、实现一个考试APP。满足教师用户通过APP进行考生管理(考生信息的增删改查)、试题管…

Python 项目及依赖管理工具技术选型

Python 项目及依赖管理工具,类似于 Java 中的 Maven 与 Node 中的 npm webpack,在开发和维护项目时起着重要的作用。使用适当的依赖管理工具可以显著提高开发效率,减少依赖冲突,确保项目的稳定性、可靠性和安全性。 一、常见项目…

怎样把图片转换成pdf文件?分享图片转PDF的九个转换方法(新)

图片转为pdf怎么弄?图片和pdf是两种完全不同的文件类型,图片转pdf的是一个比较常见的格式转换需求,尤其是需要分享图片合集时。 图片转换成pdf文件可以借助专业的pdf转换器实现,只需要简单几个步骤就能轻松搞定。无论是图片转pdf&…

北斗系统助力低空经济腾飞:未来发展无限可能

近年来,随着科技的飞速发展,北斗卫星导航系统(Beidou Satellite Navigation System, BDS)在我国乃至全球范围内的应用日益广泛。尤其在低空经济领域,北斗系统作为新基建的重要组成部分,正在发挥着不可替代的…

JMeter之上传文件同时带有参数

文章目录 业务场景使用坑 业务场景 针对下述接口构建jmeter测试&#xff0c;这是个post接口&#xff0c;在上传文件file的同时指定变量groupId的值 PostMapping("/importExcel")public ApiResultDto<String> importExcel(TagChildrenImportDto importDto) {Sec…

Python中对象操作函数

Python中的对象操作函数包括help()、dir()、type()、ascii()等。 1 help()函数 help()函数可以查看指定函数的帮助信息&#xff0c;使用方法如图1所示。 图1 help()函数的使用方法 图1中所示的代码查看了“sorted”函数的帮助信息&#xff0c;包括该函数的作用、参数以及返回…

x264 编码器 AArch64汇编系列:DCT 变换相关汇编函数

DCT变换 在x264_dct_init函数中初始化具体的 dct 实现函数。 4x4 块DCT 变换 c 语言版本实现 4x4DCT 变换函数:sub4x4_dct。pixel_sub_wxh 函数: 这个函数的作用是从两个像素块中减去一个像素块,得到差分值,这些差分值将用于DCT变换。参数: diff:指向存储结果差分值的数组…

高标准城市照明智能化应用,创新城市节能之光

项目背景 在国家推动节约型、智慧化发展的背景下&#xff0c;该城市照明系统亟需智能化升级&#xff0c;以解决现有依赖传统时控器的局限性、能源浪费与照明不足的矛盾&#xff0c;以及依赖人工巡查和市民反馈的低效率、高成本维护等问题。通过引入智能控制系统&#xff0c;实现…

RKNPU2从入门到实践 --- 【10】RKNPU2零拷贝API实现RKNN模型在RK3588开发板上的部署

目录 一、为什么叫零拷贝API&#xff1f; 二、零拷贝API执行流程&#xff08;代码解读&#xff09; 2.1 前奏工作 2.2 main.cc文件的编写&#xff08;代码的编写&#xff09; 2.2.1 第一步&#xff1a;rknn_init接口创建rknn_context对象、加载RKNN模型 2.2.2 第二步…

产品概述Tektronix泰克TCP0030A电流探头TCP0030原装二手

产品概述 Tekronix TCP0030 AC/DC 电流探头是一款高性能且易于使用的探头&#xff0c;它通过可选测量范围增强了带宽&#xff0c;同时还提供了低电流测量能力和精度。Tektronix TCP0030 探头专为具有 TekVPI 探头接口的示波器而设计。 Tektronix TCP0030 AC/DC 电流探头的功能…

浏览器播放RTSP流,支持H264、H265等格式,支持IE、Chrome等浏览器

目录 背景 解决方案 效果 代码 前端代码 后端代码 下载 背景 项目中需要在浏览器中播放RTSP流&#xff0c;实在是不想折腾ActiveX控件 1、麻烦&#xff08;开发麻烦、使用时设置也麻烦&#xff09; 2、非IE浏览器不兼容 解决方案 使用OpenCvSharpNancy写一个解码服…

uniapp秋云图表报错json underfind的原因

如果在使用秋云图表 出现报错 以及只有第一次能够渲染正确的图表 后续刷新都不显示 那么大概率都是因为在刷新页面数据的时候 图标组件自己先执行了一遍&#xff0c;导致在第一遍的时候找不到值而报错 如图所示 只需要在加载数据的时候 加个延时 就可以很好的解决这个问题

记录一下腾讯云即时通信IM(无UI集成)、TRTC做文字、语音、图片、实时音视频聊天遇到的问题

文章目录 简单记录一下通讯IM和TRTC的一些坑&#xff1a;&#xff08;有其他坑再补充......&#xff09;isReady() 一直返回falseSDK_READY监听有时候会不触发getConversationList拉取会话&#xff0c;消息数据里的cloudCustomData经常会丢移动端发图片消息总是卡顿im里的信令消…

SpringBoot+redis+aop处理黑白名单

提示&#xff1a;SpringBootredisaop处理黑白名单 文章目录 目录 文章目录 1.导包 2.配置文件 3.代码 1.返回类型 2.redis 3.redisUtils 4.controller 5.AOP 6.具体实现 4.APIFox压力测试 1.导包 <dependencies><dependency><groupId>org.springf…