1. 程式人生 > >Jedis簡介,Jedis連線 HelloWorld實現,設定redis連線密碼,Jedis 連線池例項,

Jedis簡介,Jedis連線 HelloWorld實現,設定redis連線密碼,Jedis 連線池例項,

Jedis簡介

實際開發中,我們需要用Redis的連線工具連線Redis然後操作Redis

對於主流語言,Redis都提供了對應的客戶端;

Jedis連線 HelloWorld實現

建一個Maven專案,

pom里加下jedis依賴,

1

2

3

4

5

<dependency>

<groupId>redis.clients</groupId>

<artifactId>jedis</artifactId>

<version>2.9.0</version>

</dependency>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

package com.java1234.redis;

import redis.clients.jedis.Jedis;

/**

測試類

* @author user

*

*/

public class JedisTest {

public static void main(String[] args) {

Jedis jedis=new Jedis("192.168.1.107",6379); // 建立客戶端設定IP和埠

jedis.set("name", "java知識分享網"); // 

設定值

String value=jedis.get("name"); // 獲取值

System.out.println(value);

jedis.close(); // 釋放連線資源

}

}

測試程式碼,

執行 報錯了

連線超時,

我們配置下防火牆 開一個6379埠許可權

firewall-cmd --zone=public --add-port=6379/tcp --permanent

firewall-cmd --reload

繼續執行 還是報錯 連線超時 錯誤;

我們配置下 redis配置檔案

[[email protected] redis]# vi /usr/local/redis/redis.conf

這裡綁定了本機,我們把這個備註掉;

# bind 127.0.0.1

配置完後 

[[email protected] redis]# ./bin/redis-cli shutdown

[[email protected] redis]# ./bin/redis-server ./redis.conf

要重啟下redis服務;

繼續執行 又報錯了

Exception in thread "main" redis.clients.jedis.exceptions.JedisDataException: DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authentication password is requested to clients. In this mode connections are only accepted from the loopback interface. If you want to connect from external computers to Redis you may adopt one of the following solutions: 1) Just disable protected mode sending the command 'CONFIG SET protected-mode no' from the loopback interface by connecting to Redis from the same host the server is running, however MAKE SURE Redis is not publicly accessible from internet if you do so. Use CONFIG REWRITE to make this change permanent. 2) Alternatively you can just disable the protected mode by editing the Redis configuration file, and setting the protected mode option to 'no', and then restarting the server. 3) If you started the server manually just for testing, restart it with the '--protected-mode no' option. 4) Setup a bind address or an authentication password. NOTE: You only need to do one of the above things in order for the server to start accepting connections from the outside.

at redis.clients.jedis.Protocol.processError(Protocol.java:127)

at redis.clients.jedis.Protocol.process(Protocol.java:161)

at redis.clients.jedis.Protocol.read(Protocol.java:215)

at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:340)

at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:239)

at redis.clients.jedis.Jedis.set(Jedis.java:121)

at com.java1234.redis.JedisTest.main(JedisTest.java:14)

這個是因為遠端連線redis redis自我保護 拒絕訪問;

有兩種方法 解決

第一種 直接去掉自我保護功能(不推薦)

[[email protected] redis]# vi /usr/local/redis/redis.conf

進入配置

找到 protected-mode yes

改成 no即可

編輯後 重啟redis服務,然後執行 ,結果出來了

第二種 設定redis連線密碼

進入客戶端

[[email protected] redis]# ./bin/redis-cli

127.0.0.1:6379> config set requirepass 123456

設定密碼 123456

127.0.0.1:6379> quit

[[email protected] redis]# ./bin/redis-cli

127.0.0.1:6379> auth 123456

OK

說明設定成功

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

package com.java1234.redis;

import redis.clients.jedis.Jedis;

/**

測試類

* @author user

*

*/

public class JedisTest {

public static void main(String[] args) {

Jedis jedis=new Jedis("192.168.1.107",6379); // 建立客戶端設定IP和埠

jedis.auth("123456"); // 設定密碼

jedis.set("name", "java知識分享網"); // 設定值

String value=jedis.get("name"); // 獲取值

System.out.println(value);

jedis.close(); // 釋放連線資源

}

}

這樣就OK

Jedis 連線池例項

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

package com.java1234.redis;

import redis.clients.jedis.Jedis;

import redis.clients.jedis.JedisPool;

import redis.clients.jedis.JedisPoolConfig;

/**

測試類

* @author user

*

*/

public class JedisTest {

public static void main(String[] args) {

JedisPoolConfig config=new JedisPoolConfig(); // 連線池的配置物件

config.setMaxTotal(100); // 設定最大連線數

config.setMaxIdle(10); // 設定最大空閒連線數

JedisPool jedisPool=new JedisPool(config,"192.168.1.107",6379);

Jedis jedis=null;

try{

jedis=jedisPool.getResource(); // 獲取連線

jedis.auth("123456"); // 設定密碼

jedis.set("name", "java知識分享網"); // 設定值

String value=jedis.get("name"); // 獲取值

System.out.println(value);

}catch(Exception e){

e.printStackTrace();

}finally{

if(jedis!=null){

jedis.close();

}

if(jedisPool!=null){

jedisPool.close();

}

}

}

}

執行:

相關推薦

Jedis簡介Jedis連線 HelloWorld實現設定redis連線密碼Jedis 連線例項

Jedis簡介 實際開發中,我們需要用Redis的連線工具連線Redis然後操作Redis, 對於主流語言,Redis都提供了對應的客戶端; Jedis連線 HelloWorld實現 建一個Maven專案, pom里加下jedis依賴, 1 2 3 4

Jedis連線 HelloWorld實現

    直接進入正題...... 建立一個maven工程,在pom里加下jedis依賴,             <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->     <de

檔案上傳下載時在form表單中設定屬性enctype=“multipart/form-data”的情況下如何獲取表單提交的值?

一、問題描述 檔案上傳下載時,在form表單中設定屬性enctype=“multipart/form-data”的情況下,如何獲取表單提交的有關使用者資訊的值?(比如:textfield、radio等屬性中的值) 二、解決方法 1、情況一:沒有對user物件進行封裝 方法:

mongodb設定使用者名稱和密碼並用node連線

我用的mongo的版本是4.0.4 1、設定使用者名稱和密碼 1.1 設定admin庫的使用者名稱密碼 > show dbs admin 0.000GB config 0.000GB l

設定mysql使用者密碼、遠端連線資料庫、常用命令

MySQL常用操作MySQL版本 5.6.35設定、更改root使用者密碼首次直接使用mysql會提示‘該命令不存在’,原因是還沒有將該命令加入環境變數,如果要使用該命令,需要使用其絕對路徑:/usr/local/mysql/bin/mysql,為了方便,先將其加入系統環境變

Linux下安裝Redis實現遠端連線Redis Desktop Manager視覺化連線

1.下載redis redis不是安裝包,例如tomcat,mysql等都是安裝包直接解壓就可以使用,redis是原始檔,需要用編譯後才可以使用。 2.使用xftp把壓縮包拖入到root/redis/資料夾下,並解壓 tar -zxvf redis-5.0.0.

點選“換一換”切換商品使用jquery slice()實現無縫連線切換

頁面需求需要做一個點選換一換按鈕,切換商品資訊。網上看了一些笨方法,覺得太冗餘。自己寫了一個精簡版的如下: html部分 <div class="layer clearfix qiang_inner"> <ul>

JAVA SOCKET網路程式設計服務端接收多個客戶端連線實現

這是基於前面一篇文章的一個簡單擴充套件,當然這不是最好的實現 服務端如果要想接收多個客戶端連線,必須死迴圈去接收新的客戶端的連線請求,一個完整的客戶端服務端socket連線通過一個執行緒來維護 package com.tree.demo.socket; import

約瑟夫環簡介問題以及java實現

問題:一群猴子排成一圈,按1,2,…….,n依次編號。然後從第一隻開始數,數到第m只,把它踢出圈,從它後面再開始數,再數到第m只,再把它踢出去………………….,如此不停的進行下去,直到最後只剩下一隻猴子為止,那隻猴子就叫做大王。要求:輸入m,n,輸出最後的那個大

基於Socket的TCP長連線(服務端Java+客戶端Android)Service配合AIDL實現

最近公司的專案要求加入訊息推送功能,由於專案使用者量不是很大,推送需求不是很嚴格,而且是基於內網的推送,所以我捨棄了使用三方的推送服務,自己使用Socket寫了推送功能,剪出一個小Demo來跟大家分享一下,有不足之處希望讀者能夠多多給出建議。 關於Socket的

redis的客戶端jedis裡構造器中有soTimeout和connectionTimeout兩個引數分別代表什麼

connectionTimeout:表示連線超時時間例如構造器public Jedis(String host, int port, int timeout) { super(host, port, timeout); }public static void main

MySQL--使用C3P0連線進行批量插入刪除更新資料的實現

在我們實際開發中,肯定會遇到大批量的資料來進行入庫操作。如果不使用框架應該怎麼進行資料的批量入庫呢。使用preparedStatement的addBatch()和executeBatch()方法可以進行批量操作。整體思路是:1.批量插入首先需要構造一個updateSet,用來

geek青年的狀態機查表純C語言實現

fill south 總結 target 堅持 str 分享 接收 backward geek青年的狀態機,查表,純C語言實現 1. 問題的提出。抽象 建一,不止是他,不少人跟我討論過這種問題:怎樣才幹保證在需求變更、擴充的情況下。程序的主體部分不動呢? 這是一個

【轉載】對一致性Hash算法Java代碼實現的深入研究

困難 之前 存在 itl ger 正常 我不 操作 算法實現 原文地址:http://www.cnblogs.com/xrq730/p/5186728.html 一致性Hash算法 關於一致性Hash算法,在我之前的博文中已經有多次提到了,MemCache超詳細解讀一

下拉列表點擊選擇實現跳轉鏈接 onchange="window.location=..."

this option 用戶 onchange ... tex 註意 下拉 win <select onchange="window.location=this.value;">  <option value="a.html">用戶管理</op

對一致性Hash算法Java代碼實現的深入研究

memcach 還原 情況 () 實用 target 強人 最壞情況 一致性hash 一致性Hash算法 關於一致性Hash算法,在我之前的博文中已經有多次提到了,MemCache超詳細解讀一文中"一致性Hash算法"部分,對於為什麽要使用一致性Hash算法、一致性Has

通過編寫c語言程序運行時實現打印另一個程序的源代碼和行號

clas 行號 意義 spa clu 可執行 stdlib.h 讀取 進行 2017年6月1日程序編寫說明: 1.實現行號的打印,實現代碼的讀取和輸出,理解主函數中的參數含義。 2.對fgets函數理解不夠 3.對return(1); return 0的含義理解不夠 4.未

設計模式入門適配器模式c++代碼實現

urn c++代碼 for lar nbsp sta adapt ++ 設計 // test07.cpp : Defines the entry point for the console application.// #include "stdafx.h"//設計模式第7

C++調用JS可變參模板實現方便調用(cocos2d-x)

err temp oid eva template sse pac cocos2d-x class #include "scripting/js-bindings/manual/ScriptingCore.h" #include <sstream> #in

對稱加密詳解以及JAVA簡單實現

turn bsp 十進制 stat mage 需要 對稱密鑰 else ges (原) 常用的加密有3種 1、正向加密,如MD5,加密後密文固定,目前還沒辦法破解,但是可以能過數據庫撞庫有一定概率找到,不過現在一般用這種方式加密都會加上鹽值。 2、對稱加密,通過一個固定