真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

在redis中設(shè)置客戶端登錄密碼的方法

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

創(chuàng)新互聯(lián)公司主要從事網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)黃驊,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):13518219792

導(dǎo)語:

為了保證安全性,redis在生產(chǎn)環(huán)境中一般都會(huì)設(shè)置登錄密碼,今天我就來為大家介紹一下如何設(shè)置登錄密碼。

修改redis.conf

RT,打開redis.conf文件,搜索requirepass關(guān)鍵字,如下圖:

在redis中設(shè)置客戶端登錄密碼的方法

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

在redis中設(shè)置客戶端登錄密碼的方法

修改完成后重啟redis,再次通過redis客戶端redis-cli登錄并操作可以發(fā)現(xiàn)會(huì)報(bào)一個(gè)身份認(rèn)證錯(cuò)誤:

在redis中設(shè)置客戶端登錄密碼的方法

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

在redis中設(shè)置客戶端登錄密碼的方法

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

jedis設(shè)置密碼

當(dāng)我們用Java客戶端連接redis時(shí)會(huì)遇到同樣的問題,下面看一段簡單的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");
        // 查看服務(wù)是否運(yùn)行
        System.out.println("Server is running: " + jedis.ping());
    }
 
}

非常簡單,僅僅是測試一下Jedis是否連通redis服務(wù)器,運(yùn)行junit后我們發(fā)現(xiàn)報(bào)異常了:

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)

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

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

所以在創(chuàng)建了Jedis的實(shí)例后再加上一行jedis.auth("123456"); 即可,最后看一下運(yùn)行結(jié)果:

在redis中設(shè)置客戶端登錄密碼的方法

spring-data-redis設(shè)置密碼

通常情況下在實(shí)際的java項(xiàng)目中我們會(huì)選擇Spring提供的spring-data-redis來操作redis,spring的封裝可以給我們提供很多便捷之處。那么spring-data-redis又是如何設(shè)置密碼的呢?首先定義一個(gè)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中來設(shè)置密碼屬性即可,下面是完整redis配置:



    
    
    



    

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


分享題目:在redis中設(shè)置客戶端登錄密碼的方法
文章起源:http://weahome.cn/article/gsppgd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部