前言
實際開發中,我們需要用Redis的連接工具連接Redis然後操作Redis,
對於主流語言,Redis都提供了對應的客戶端;可以到redis官網查看對應的客戶端
點擊Clients
可以看到都對那些語言提供了客戶端,點擊Java,查看對java語言提供的客戶端
第一新建maven項目
新建一個新的maven項目
第二添加Jedis依賴
在pom文件添加maven依賴
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
出現這兩個jar包說明依賴添加成功
第三Redis後臺運行
查看redis是否運行了
ps -ef | grep -i redis
從圖上可以看出,redis-server 目前正在6379 端口運行
如果沒有運行,開啓後臺運行並配置密碼
bin/redis-server redis.conf
bin/redis-cli
config set requirepass 123456
第四開放6379端口
package com.honger1234;
import redis.clients.jedis.Jedis;
public class JedisTest {
public static void main(String[] args) {
Jedis jedis = new Jedis("172.16.150.128", 6379);
jedis.auth("123456");
jedis.set("name", "honger1234");
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的配置文件中綁定了只能由本地連接
修改啓動的配置文件
vi /usr/local/redis/redis.conf
把圖中的代碼前面加上#註釋掉,保存退出
第六設置Redis密碼
運行測試代碼,還是報錯,這次報的是保護模式錯誤
這個是因爲遠程連接redis redis自我保護 拒絕訪問;
這裏有兩種解決方法,一種是設置redis密碼(推薦使用),一種是去掉redis的自我保護(不推薦)
1.設置密碼
進入redis客戶端
/usr/local/redis/bin/redis-cli
設置密碼
config set requirepass 123456
2.去掉redis的自我保護
修改redis的配置文件
vi /usr/local/redis/redis.conf
將圖中的yes改爲no,保存退出
運行測試代碼
表示連接成功
第七使用鏈接池
改用連接池連接
package com.honger1234;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
public class JedisPoolTest {
public static void main(String[] args) {
JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
jedisPoolConfig.setMaxTotal(100);// 設置最大連接數
jedisPoolConfig.setMaxIdle(10);// 設置最大空閒數
JedisPool jedisPool = null;
Jedis jedis = null;
try {
jedisPool = new JedisPool(jedisPoolConfig, "172.16.150.128", 6379);
jedis = jedisPool.getResource();
jedis.auth("123456");
jedis.set("name", "honger1234");
String value = jedis.get("name");
System.out.println(value);
} catch (Exception e) {
e.printStackTrace();
} finally {
jedis.close();
jedisPool.close();
}
}
}
運行測試連接
表示成功