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.

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

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

相关文章

springboot网站开发-idea开发环境下无法开启调试Debug模式

springboot网站开发-idea开发环境下无法开启调试Debug模式的解决办法。 近期在写后端代码的时候&#xff0c;发现&#xff0c;无法开启调试模式。网上查询了一下资料&#xff0c;发现需要做如下修改即可开启调试模式。 如图所示&#xff0c;把里面的选项&#xff0c;都放弃勾选…

SQLPro Studio:数据库管理的革命性工具 mac版

SQLPro Studio是一款强大的数据库管理和开发工具&#xff0c;它旨在提供高效、便捷和安全的数据库操作体验。无论是数据库管理员、开发人员还是数据分析师&#xff0c;SQLPro Studio都能满足他们在数据库管理、查询、设计和维护方面的需求。 SQLPro Studio mac版软件获取 首先…

B树系列(详解)

目录 一、B-树 二、B树 三、B*树 四、时间复杂度 五、Mysql与B树系列 一、B-树 首先再说B树的性质以及其他的之前&#xff0c;先要说一声&#xff0c;好多人都把这个树叫B减树&#xff0c;其实不是&#xff0c;他就叫B树&#xff0c;至于原因我觉的没必要再这个名字上纠结…

docker 转为docker-compose(composerize 命令)

可以使用Composerize将Docker命令转换为Docker Compose文件。 例如&#xff1a;将docker run命令转换为Docker Compose格式&#xff0c;只需用Composerize运行它&#xff0c;如下所示&#xff1a; composerize docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/…

【JavaSE】异常

异常概述 异常指的是程序在执行的过程中&#xff0c;出现的非正常情况&#xff0c;如果不处理最终会导致JVM的非正常停止。 在Java中&#xff0c;使用不同的类来表示不同的异常&#xff08;正所谓万物皆对象&#xff0c;因此异常也使用类来表示&#xff09;。一旦程序出现某种…

【HTML】HTML基础5(特殊字符)

目录 特殊字符的作用 常用的特殊字符 使用效果 特殊字符的作用 例如 当我在两个文字间打出空格时 <p>“银河护卫队”系列 在漫威电影宇宙中一直是异数般的存在&#xff0c;不仅因为影片主角是一群反英雄&#xff0c;<strong>与超级英雄相比显得格格不入<…

读书笔记-三国演义-三英战吕布

三英战吕布是《三国演义》中的一段著名战役&#xff0c;张飞、关羽和刘备三兄弟联手击败了当时的霸主吕布&#xff0c;展现了他们的武艺和忠义。 介绍 "三英战吕布"是《三国演义》中的一个著名战役&#xff0c;发生在三国时期&#xff0c;讲述了三位蜀汉名将——刘…

LeetCode 刷题 [C++] 第347题.前 K 个高频元素

题目描述 给你一个整数数组 nums 和一个整数 k &#xff0c;请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。 题目分析 据题意可知&#xff0c;我们需要先遍历整个数组&#xff0c;并统计每个数字出现的次数&#xff0c;保存在哈希表中&#xff1b;对元素…

synchrosized 的可重入特性、死锁、哲学家就餐问题以及解决死锁的方法等干货

文章目录 &#x1f490;synchrosized的可重入特性关于死锁&#xff1a;哲学家就餐问题&#x1f4a1;如何避免/解决死锁 &#x1f490;synchrosized的可重入特性 可重入特性&#xff1a;当一个线程针对一个对象同时加锁多次&#xff0c;不会构成死锁&#xff0c;这样的特性称为…

前端学习第一天-html基础

达标要求 网页的形成过程 常用的浏览器及常见的浏览器内核 web 标准三层组成 什么是HTML 熟练掌握HTML文档结构 熟练掌握HTML常用标签 1. 初识web前端 Web前端是创建Web页面或App等前端界面呈现给用户的过程。 Web前端开发是从网页制作演变而来&#xff0c;早期网站主…

sklearn.preprocessing.RobustScaler(解释和原理,分位数,四分位差)

提示&#xff1a;sklearn.preprocessing.RobustScaler&#xff08;解释和原理&#xff0c;分位数&#xff0c;四分位差&#xff09; 文章目录 [TOC](文章目录) 一、RobustScaler 是什么&#xff1f;二、代码1.代码2.输出结果 总结 提示&#xff1a;以下是本篇文章正文内容&…

ELK学习

ELK 一、ELK介绍 &#x1f604; “ELK”是三个开源项目的首字母缩写&#xff0c;这三个项目分别是&#xff1a;Elasticsearch、Logstash 和 Kibana。Elasticsearch 是一个搜索和分析引擎。Logstash 是服务器端数据处理管道&#xff0c;能够同时从多个来源采集数据&#xff0…

网络编程(IP、端口、协议、UDP、TCP)【详解】

目录 1.什么是网络编程&#xff1f; 2.基本的通信架构 3.网络通信三要素 4.UDP通信-快速入门 5.UDP通信-多发多收 6.TCP通信-快速入门 7.TCP通信-多发多收 8.TCP通信-同时接收多个客户端 9.TCP通信-综合案例 1.什么是网络编程&#xff1f; 网络编程是可以让设…

Redis的事务

在 Redis 中&#xff0c;事务&#xff08;Transaction&#xff09;是一组命令的集合&#xff0c;可以作为一个单独的操作来执行&#xff0c;保证这组命令要么全部执行成功&#xff0c;要么全部执行失败&#xff0c;具有原子性。在 Redis 中&#xff0c;事务是通过 MULTI、EXEC、…

repo介绍和安装

介绍 https://blog.devwiki.net/2023/11/27/Windows-repo.html 安装&#xff1a; https://blog.csdn.net/ysy950803/article/details/104188793

网络安全-appcms-master

一、环境 gethub上面自己找appcms-master 二、开始闯关 原理&#xff1a;在评论的时候提交可以提交到管理员列表去&#xff0c;管理员一看cookie和地址就被盗走了 点进去软件后会发现提交按钮 随便提交一下看看 放到div标签里面是不是有可能可以做&#xff0c;看看后台吧 那…

初学者如何学习python

Python 作为当今最受欢迎的编程语言之一&#xff0c;已经被包括谷歌、优步、Instagram 等知名公司广泛采用于他们的应用程序开发。由于其易学易用的特性&#xff0c;Python 成为了编程初学者的首选语言。特别是在机器学习和数据科学领域&#xff0c;Python 的应用更是让它成为了…

VUE CLI3项目搭建 ESLint配置

VUE项目框架配置 一、工具准备 Node.js安装 安装方法&#xff1a;点击查看WebStorm安装 下载地址&#xff1a;点击查看 二、环境准备 镜像准备 1.查看代理&#xff1a;npm get registry 2.设置淘宝镜像 2.1临时使用. npm --registry https://registry.npm.taobao.org ins…

【电机仿真】空间矢量脉宽调制(SVPWM)算法与实现

前言 文章【电机仿真】永磁同步电机模型中所提及了PMSM数学模型&#xff0c;模型算法是电机控制的理论基础&#xff0c;但在实际控制中&#xff0c;需要将这两部分具象化。实际电机所需要的总是三相电流或者电压&#xff0c;控制对象为逆变器中的开关器件&#xff0c;我们需要将…

springboot基于web的音乐网站论文

音乐网站 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了音乐网站的开发全过程。通过分析音乐网站管理的不足&#xff0c;创建了一个计算机管理音乐网站的方案。文章介绍了音乐网站的系统分析部分&#xff0c…