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

Redis 之八:Jdeis API 的使用(Java 操作 Redis)

Jedis API 使用

Jedis 是 Redis 官方推荐的 Java 客户端,它提供了一套丰富的 API 来操作 Redis 服务器。通过 Jedis API,开发者可以方便地在 Java 应用程序中执行 Redis 的命令来实现数据的增删查改以及各种复杂的数据结构操作。

以下是一些基本的 Jedis API 示例和它们对应的功能:

常用操作

  1. 连接 Redis

    Jedis jedis = new Jedis("localhost", 6379); // 创建一个与Redis实例的连接,默认端口是6379
  2. 字符串(String)操作

    设置/获取值:

    jedis.set("key", "value"); // 设置键值对
    String value = jedis.get("key"); // 获取键对应的值
  3. 哈希表(Hash)操作

    添加/获取哈希表中的字段值:

    jedis.hset("hashKey", "field", "value"); // 向哈希表添加字段
    Map<String, String> map = jedis.hgetAll("hashKey"); // 获取整个哈希表的内容
  4. 列表(List)操作

    在列表头部或尾部插入元素:

    jedis.lpush("listKey", "item1"); // 在列表左侧添加元素
    List<String> list = jedis.lrange("listKey", 0, -1); // 获取列表内所有元素
  5. 集合(Set)操作

    添加/查询集合成员:

    jedis.sadd("setKey", "member1"); // 将元素添加到集合中
    Set<String> members = jedis.smembers("setKey"); // 获取集合中所有成员
  6. 有序集合(Sorted Set/ZSet)操作

    添加带分数的成员并排序:

    jedis.zadd("zsetKey", 1.0, "member1"); // 根据分数添加成员
    Set<String> sortedMembers = jedis.zrangeByScore("zsetKey", 0, Double.MAX_VALUE); // 根据分数范围获取成员

除此之外,Jedis 还提供了事务、发布订阅、Lua 脚本、键空间通知等高级功能的API支持。为了确保资源的有效管理,使用完 Jedis 实例后需要调用 jedis.close() 方法关闭连接。

随着 Redis 版本更新和新特性的增加,Jedis API 也在不断扩展和完善,以适应更多的应用场景。

具体测试步骤

1. 新建 maven 项目

配置 pom.xml ,添加 Jedis 依赖

<dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId><version>3.6.3</version></dependency>
</dependencies>

2. 编写测试类

测试是否能够连通

先测试是否能连通本地redis (window )

/*** 访问本机*/
public class Test {public static void main(String[] args) {//127.0.0.1 访问的window 上的 redisJedis jedis = new Jedis("127.0.0.1",6379);jedis.auth("zhang");String name = jedis.get("name");System.out.println(name);}
}

注意: 如果 redis 配置了身份验证,可以使用 jedis.auth("") 指定密码即可。

3. 访问配置

a. 测试linux 连通

/*** 1. 防火墙和端口* 2. 修改配置,允许其他站点访问*/
public class TestLinuxRedis {public static void main(String[] args) {Jedis jedis = new Jedis("192.168.184.140",6379);String name = jedis.get("name");System.out.println(name);}
}

注意:默认情况下,连接会超时和失败。

原因:

  1. linux 防火墙或端口问题。可以通过关闭防火墙或开放端口解决

  2. 如果开放后,默认仍是无法访问的,因为 redis 默认只允许本机访问。需要修改配置文件 redis.conf

    a) 方式一: 修改 bind 127.0.0.1 改为 bind 0.0.0.0

    b) 方式二:注释掉 bind 127.0.0.1 同时 修改保护模式为 : protected-mode no

b. 关闭防火墙

[root@localhost bin]# systemctl stop firewalld

c. 再测试,通过!

再次开启防火墙,又不能通过,所以再单独开放 6379 端口即可

[root@zhangpeng bin]# systemctl start firewalld
[root@zhangpeng bin]# firewall-cmd --zone=public --add-port=6379/tcp --permanent
success
[root@zhangpeng bin]# firewall-cmd --reload

开启防火墙命令:

*    firewall-cmd --zone=public --add-port=6379/tcp --permanent
*    firewall-cmd --reload**  # 配置立即生效

4. 问题总结

* 1. 出现 connect timed out 连接超时问题
*  a. 检查防火墙和端口是否开放
*  b. redis 保护问题,查看配置文件 redis.conf 文件
*      bind 127.0.0.1 -::1 注释掉
*      protected-mode no
*  c. 重新启动,先shutdown,再启动
* 2. 注意:不能向从节点中写数据的
*      redis.clients.jedis.exceptions.JedisDataException:
*      READONLY You can't write against a read only replica.

相关文章:

Redis 之八:Jdeis API 的使用(Java 操作 Redis)

Jedis API 使用 Jedis 是 Redis 官方推荐的 Java 客户端&#xff0c;它提供了一套丰富的 API 来操作 Redis 服务器。通过 Jedis API&#xff0c;开发者可以方便地在 Java 应用程序中执行 Redis 的命令来实现数据的增删查改以及各种复杂的数据结构操作。 以下是一些基本的 Jedis…...

Docker 应用入门

一、Docker产生的意义 1‘解决环境配置难题&#xff1a;在软件开发中最大的麻烦事之一&#xff0c;就是环境配置。为了跑我们的程序需要装各种插件&#xff0c;操作系统差异、不同的版本插件都可能对程序产生影响。于是只能说&#xff1a;程序在我电脑上跑是正常的。 2’解决资…...

朱维群将出席用碳不排碳碳中和顶层科技路线设计开发

演讲嘉宾&#xff1a;朱维群 演讲题目&#xff1a;“用碳不排碳”碳中和顶层科技路线设计开发 简介 姓名&#xff1a;朱维群 性别&#xff1a;男 出生日期&#xff1a;1961-09-09 职称&#xff1a;教授 1998年毕业于大连理工大学精细化工国家重点实验室精细化工专业&#x…...

linux如何查看磁盘占用情况

要查看Linux系统中磁盘的占用情况&#xff0c;可以使用一些命令来获取相关信息。以下是一些常用的命令&#xff1a; df命令&#xff1a; df命令用于显示文件系统的磁盘空间使用情况&#xff0c;包括磁盘分区的总空间、已用空间、可用空间等信息。 df -h使用 -h 参数可以以人类可…...

【C++庖丁解牛】类与对象

&#x1f4d9; 作者简介 &#xff1a;RO-BERRY &#x1f4d7; 学习方向&#xff1a;致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f4d2; 日后方向 : 偏向于CPP开发以及大数据方向&#xff0c;欢迎各位关注&#xff0c;谢谢各位的支持 目录 1.面向过程和面向对象…...

在什么时候企业档案才会发生调整

档案在企业中通常会调整在以下几个时刻&#xff1a; 1. 入职时&#xff1a;员工入职时&#xff0c;企业会要求员工提供个人档案&#xff0c;包括身份证件、学历证明、工作经历等相关文件。 2. 离职时&#xff1a;员工离职时&#xff0c;企业会整理员工的离职档案&#xff0c;包…...

Linux或Windows下判断socket连接状态

前言 场景&#xff1a;客户端程序需要实时知道和服务器的连接状态。比较通用的做法应用层是采用心跳机制&#xff0c;每隔一端时间发送心跳能回复说明服务器正常。 实际应用场景中&#xff0c;服务端和客户端并不是一家厂商的&#xff0c;比如说笔者这种情况&#xff0c;服务端…...

编译链接实战(25)gcc ASAN、MSAN检测内存越界、泄露、使用未初始化内存等内存相关错误

文章目录 1 ASAN1.1 介绍1.2 原理编译时插桩模块运行时库2 检测示例2.1 内存越界2.2 内存泄露内存泄露检测原理作用域外访问2.3 使用已经释放的内存2.4 将漏洞信息输出文件3 MSAN1 ASAN 1.1 介绍 -fsanitize=address是一个编译器选项,用于启用AddressSanitizer(地址...

[HackMyVM]靶场 VivifyTech

kali:192.168.56.104 主机发现 arp-scan -l # arp-scan -l Interface: eth0, type: EN10MB, MAC: 00:0c:29:d2:e0:49, IPv4: 192.168.56.104 Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan) 192.168.56.1 0a:00:27:00:00:05 (Unk…...

软考高级系统分析师:关联关系、依赖关系、实现关系和泛化关系概念和例题

一、AI 解读 关联关系、依赖关系、实现关系和泛化关系是面向对象设计中的四种基本关系。它们在类与类之间建立不同类型的联系&#xff0c;以反映对象间的相互作用、依赖和继承关系。下面我将使用表格的形式来解释这四种关系的概念和它们之间的区别&#xff1a; 关系类型概念特…...

设计模式学习笔记 - 面向对象 - 9.实践:如何进行面向对象分析、设计与编码

1.如何对接口鉴权这样一个功能开发做面向对象分析 本章会结合一个真实的案例&#xff0c;从基础的需求分析、职责划分、类的定义、交互、组装运行讲起&#xff0c;将最基础的面向对象分析&#xff08;00A&#xff09;、设计&#xff08;00D&#xff09;、编程&#xff08;00P&…...

【iOS ARKit】RealityKit 同步机制

协作 Session 可以很方便地实现多用户之间的AR体验实时共享&#xff0c;但开发者需要自行负责并确保AR场景的完整性&#xff0c;自行负责虚拟物体的创建与销毁。为简化同步操作&#xff0c;RealityKit 内建了同步机制&#xff0c;RealityKit 同步机制基于 Multipeer Connectivi…...

【数据结构与算法】整数二分

问题描述 对一个排好序的数组&#xff0c;要求找到大于等于7的最小位置和小于等于7的最大位置 大于等于7的最小位置 易知从某个点开始到最右边的边界都满足条件&#xff0c;我们要找到这个区域的最左边的点。 开始二分&#xff01; left指针指向最左边界&#xff0c;right…...

java项目打包运行报异常:xxxxx-1.0-SNAPSHOT.jar中没有主清单属性

pom.xml中加入这段话即可 <build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.4.4</version><executions><execution><…...

MAC-键盘command快捷键、设置windows快捷键

在 Windows PC 专用键盘上&#xff0c;请用 Alt 键代替 Option 键&#xff0c;用 Ctrl 键或 Windows 标志键代替 Command 键。 Mac 键盘快捷键 - 官方 Apple 支持 (中国) 设置windows快捷键 使用mac外接适用于windows的键盘时&#xff0c;如何设置快捷键&#xff1f;_mac外…...

C++ 补充之常用遍历算法

C遍历算法和原理 C标准库提供了丰富的遍历算法&#xff0c;涵盖了各种不同的功能。以下是一些常见的C遍历算法以及它们的概念和原理的简要讲解&#xff1a; for_each&#xff1a;对容器中的每个元素应用指定的函数。 概念&#xff1a;对于给定的容器和一个可调用对象&#xff…...

【Linux杂货铺】调试工具gdb的使用

目录 &#x1f308;前言&#x1f308; &#x1f4c1;背景介绍 &#x1f4c1; 使用 list [行号] / [函数名] run/r break/b [行号] / [函数名] info break disable break enable break delete break [断点编号] next/n step/s continue/c finish print/p [变量…...

FL Studio Producer Edition2024中文进阶版Win/Mac

FL Studio Producer Edition&#xff0c;特别是其【中文进阶版 Win/Mac】&#xff0c;是数字音乐制作领域中的一款知名软件。它为广大音乐制作人、声音工程师以及音乐爱好者提供了一个从音乐构思到最终作品发布的完整解决方案。这个版本特别为中文用户优化&#xff0c;并兼容W…...

无需邀请码,Xinstall实现精准分享归因

在如今的移动互联网时代&#xff0c;分享已经成为了我们日常生活中不可或缺的一部分。无论是社交媒体上的好友分享&#xff0c;还是应用内的内容分享&#xff0c;分享都能够帮助我们快速传播信息&#xff0c;扩大影响力。然而&#xff0c;对于开发者而言&#xff0c;分享却带来…...

机器人与AGI会撞出什么火花?

真正的科技变革是不是就要来临了&#xff1f;各方大佬都开始布局机器人&#xff0c;对于普通人的就业会造成什么影响&#xff1f; ​ 优牛企讯-企业动态信息监控专家 在优牛企讯-企业动态监控专家搜索可知&#xff0c;全国目前的机器人公司已经达到了26401家&#xff0c;近一年…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?

一、核心优势&#xff1a;专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发&#xff0c;是一款收费低廉但功能全面的Windows NAS工具&#xff0c;主打“无学习成本部署” 。与其他NAS软件相比&#xff0c;其优势在于&#xff1a; 无需硬件改造&#xff1a;将任意W…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

QMC5883L的驱动

简介 本篇文章的代码已经上传到了github上面&#xff0c;开源代码 作为一个电子罗盘模块&#xff0c;我们可以通过I2C从中获取偏航角yaw&#xff0c;相对于六轴陀螺仪的yaw&#xff0c;qmc5883l几乎不会零飘并且成本较低。 参考资料 QMC5883L磁场传感器驱动 QMC5883L磁力计…...

Linux云原生安全:零信任架构与机密计算

Linux云原生安全&#xff1a;零信任架构与机密计算 构建坚不可摧的云原生防御体系 引言&#xff1a;云原生安全的范式革命 随着云原生技术的普及&#xff0c;安全边界正在从传统的网络边界向工作负载内部转移。Gartner预测&#xff0c;到2025年&#xff0c;零信任架构将成为超…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

3403. 从盒子中找出字典序最大的字符串 I

3403. 从盒子中找出字典序最大的字符串 I 题目链接&#xff1a;3403. 从盒子中找出字典序最大的字符串 I 代码如下&#xff1a; class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

【7色560页】职场可视化逻辑图高级数据分析PPT模版

7种色调职场工作汇报PPT&#xff0c;橙蓝、黑红、红蓝、蓝橙灰、浅蓝、浅绿、深蓝七种色调模版 【7色560页】职场可视化逻辑图高级数据分析PPT模版&#xff1a;职场可视化逻辑图分析PPT模版https://pan.quark.cn/s/78aeabbd92d1...