久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

在redis中設置客戶端登錄密碼的方法

139次閱讀
沒有評論

共計 4037 個字符,預計需要花費 11 分鐘才能閱讀完成。

自動寫代碼機器人,免費開通

這篇文章給大家分享的是有關在 redis 中設置客戶端登錄密碼的方法的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。

導語:

為了保證安全性,redis 在生產環境中一般都會設置登錄密碼,今天我就來為大家介紹一下如何設置登錄密碼。

修改 redis.conf

RT,打開 redis.conf 文件,搜索 requirepass 關鍵字,如下圖:

在 redis 中設置客戶端登錄密碼的方法

關注標記的那一行,#requirepass foobared。設置密碼的方法就是去掉注釋的 #,把 foobared 替換成自己的密碼即可,例如將密碼設置為 123456:

在 redis 中設置客戶端登錄密碼的方法

修改完成后重啟 redis,再次通過 redis 客戶端 redis-cli 登錄并操作可以發現會報一個身份認證錯誤:

在 redis 中設置客戶端登錄密碼的方法

這就說明我們已經成功的設置了密碼,所以通過客戶端連接的話必須加上密碼參數才能正常連接:

在 redis 中設置客戶端登錄密碼的方法

如上圖所示,加了 - a 參數之后即可正常連接并操作 redis。

jedis 設置密碼

當我們用 Java 客戶端連接 redis 時會遇到同樣的問題,下面看一段簡單的 jedis 連接 redis 的測試代碼:

package com.firstelite.test;
 
import org.junit.Test;
 
import redis.clients.jedis.Jedis;
 
public class Test4Jedis {
 
 @Test
 public void testTwo() {
 Jedis jedis = new Jedis( 192.168.145.10 
 System.out.println( Connection to server sucessfully 
 //  查看服務是否運行
 System.out.println(Server is running:   + jedis.ping());
 }
 
}

非常簡單,僅僅是測試一下 Jedis 是否連通 redis 服務器,運行 junit 后我們發現報異常了:

redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.
 at redis.clients.jedis.Protocol.processError(Protocol.java:117)
 at redis.clients.jedis.Protocol.process(Protocol.java:142)
 at redis.clients.jedis.Protocol.read(Protocol.java:196)
 at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:288)
 at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:187)
 at redis.clients.jedis.BinaryJedis.ping(BinaryJedis.java:109)
 at com.firstelite.test.Test4Jedis.testTwo(Test4Jedis.java:15)
 at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
 at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
 at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.lang.reflect.Method.invoke(Method.java:601)
 at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
 at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
 at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
 at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
 at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79)
 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71)
 at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49)
 at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
 at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
 at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
 at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
 at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
 at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
 at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
 at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
 at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

顯而易見,由于我們設置了密碼但在這里又沒有指定密碼,所以報了和剛才相同的錯誤,那么如何指定密碼呢?很簡單,Jedis 的父類 BinaryJedis 提供了這樣一樣方法:

 public String auth(final String password) { checkIsInMulti();
 client.auth(password);
 return client.getStatusCodeReply();
 }

所以在創建了 Jedis 的實例后再加上一行 jedis.auth(123456 即可,最后看一下運行結果:

在 redis 中設置客戶端登錄密碼的方法

spring-data-redis 設置密碼

通常情況下在實際的 java 項目中我們會選擇 Spring 提供的 spring-data-redis 來操作 redis,spring 的封裝可以給我們提供很多便捷之處。那么 spring-data-redis 又是如何設置密碼的呢?首先定義一個 redis.properties 配置文件,定義一組 redis 屬性供 spring 加載使用,其中就包含密碼(redis.password):

# Redis settings 
redis.host=192.168.145.10 
redis.port=6379 
redis.password=123456
redis.timeout=100000 
redis.maxTotal=300 
redis.maxIdle=100 
redis.maxWaitMillis=1000 
redis.testOnBorrow=true

然后在由 Spring 封裝的 JedisConnectionFactory 中來設置密碼屬性即可,下面是完整 redis 配置:

 !-- redis 配置  --
bean id= poolConfig   >

感謝各位的閱讀!關于“在 redis 中設置客戶端登錄密碼的方法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向 AI 問一下細節

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-16發表,共計4037字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 牟定县| 鹤岗市| 扎鲁特旗| 荣成市| 西平县| 东台市| 南阳市| 登封市| 涞源县| 合山市| 奉新县| 许昌市| 南雄市| 普安县| 楚雄市| 定安县| 铅山县| 吉安县| 新闻| 张家口市| 汾阳市| 尚义县| 长阳| 巍山| 屏东县| 长顺县| 正阳县| 绥棱县| 南投市| 江门市| 新竹市| 昌乐县| 博客| 西平县| 遵化市| 阿荣旗| 广宁县| 南郑县| 集贤县| 克什克腾旗| 新源县|