第一次使用java操作Redis以及錯誤小結
目錄
1.redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectExction :
2.redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.:
【注】本篇部落格使用IDEA + maven來進行程式碼的書寫和管理。
Java操作Redis時的jar包進行了分類:jedis包和redisson包。
jedis包:用於資料庫的增刪改查;
redisson包:用於加鎖和解鎖。
java操作Redis的流程:
1.匯入jedis依賴包:
在https://mvnrepository.com/上搜索"jedis"來匯入相關版本的jedis依賴:
<!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
2.匯入junit依賴包:
junit屬於單元測試外掛,可以使得程式設計師省去main()直接對某一個方法進行測試,只需要在需要測試的方法的前面加上@Test。但是對於該方法有強制性要求:
(1).必須使用public修飾;
(2).方法中不能有返回值;
(3).方法中不得有引數。
3.寫測試方法:
public class JedisDemo1 { @Test public void testJedis(){ //連線Redis伺服器 Jedis jedis = new Jedis("172.27.200.100",6379); String result = jedis.set("host","172");//向Redis中加入資料 若成功返回OK System.out.println(result); } }
關於testJedis( )執行時控制檯報錯分析:
1.redis.clients.jedis.exceptions.JedisConnectionException: java.net.ConnectExction :
與伺服器上的Redis連線失敗。原因有:
(1).伺服器防火牆上的6379埠沒有開啟
#檢查6379埠是否開放
firewall-cmd --query-port=6379/tcp
#開放6379埠
firewall-cmd --add-port=6379/tcp --permanent
#重啟防火牆
firewall-cmd --reload
再次檢查
firewall-cmd --query-port=6379/tcp
(2).Redis安裝目錄下總配置檔案redis.conf沒有更改
Redis預設只支援本地連線,所以要通過修改配置檔案來支援其他機器連線Redis.
1)使用vim或vi開啟redis.conf;
2)將大約第70行的"bind 127.0.0.1" 改為 “bind 0.0.0.0”以用來支援所有主機可以連線Redis;
3)檢視當前執行的Redis的程序號:
ps -A | grep redis
4)根據程序號強行殺死當前Redis程序:
kill -9 程序號
5)使用修改的redis.conf啟動Redis:
#根據redis.conf的路徑 可做修改
redis-server /opt/redis4.0.2/redis.conf
(3)Redis伺服器沒有啟動。
2.redis.clients.jedis.exceptions.JedisDataException: NOAUTH Authentication required.:
這種錯誤屬於連線上了伺服器上的Redis,但是沒有認證。也就是說沒有輸入密碼或者輸入的密碼不正確導致。應該在java測試程式碼中加上:
jedis.auth("123456");//方法引數是登陸密碼