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.pswp.cn/news/715739.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715739.shtml
英文地址,請注明出處:http://en.pswp.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…