Redis 的 java 客戶端 jedis
阿新 • • 發佈:2018-11-25
Java 連線 MySql 我們有 mysql-connector ,連線 Redis 我們有 jedis。
一、引入依賴
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
對應的是這兩個 jar 包:
二、關閉 Redis 伺服器端的防火牆
Ubuntu:
ufw disable
CentOS:
/etc/init.d/iptables start
三、修改Redis 的配置檔案
修改 redis 配置檔案中繫結的 ip 為虛擬機器所佔用的 ip地址:
四、使用 Jedis 提供的 API
package com.qjl.pems.test;
import java.util.Set;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.Transaction;
/**
* 類描述:測試Redis的客戶端Jedis
* 全限定性類名: com.qjl.pems.test.JedisTest
* @author 曲健磊
* @date 2018年8月15日上午8:18:19
* @version V1.0
*/
public class JedisTest {
/**
* 測試與redis的連通性
*/
@Test
public void testPing() {
Jedis jedis = new Jedis("192.168.198.130", 6379);
System.out.println(jedis.ping());
jedis.close();
}
/**
* 測試redis常用api
*/
@Test
public void testRedisAPI() {
Jedis jedis = new Jedis("192.168.198.130", 6379);
// String info = jedis.info("replication");
// System.out.println(info);
jedis.set("k1", "v1");
jedis.set("k2", "v2");
jedis.set("k3", "v3");
System.out.println(jedis.get("k2"));
Set<String> sets = jedis.keys("*");
System.out.println(sets.size());
jedis.close();
}
/**
* 演示主從複製
*/
@Test
public void testMasterSlave() {
Jedis jedisM = new Jedis("192.168.198.130", 6379);
Jedis jedisS = new Jedis("192.168.198.130", 6380);
jedisS.slaveof("192.168.198.130", 6379);
jedisM.set("name", "qujianlei");
String result = jedisS.get("name");
System.out.println(result);
jedisM.close();
jedisS.close();
}
/**
* 演示事務
*/
@Test
public void testTransaction() {
Jedis jedis = new Jedis("192.168.198.130", 6379);
jedis.set("balanceA", "100"); // A賬戶可用餘額
jedis.set("balanceB", "220"); // B賬戶可用餘額
// 互斥鎖(鎖key)
jedis.watch("balanceA");
System.out.println("=====開始轉賬 A-->B 50 =====");
Transaction tx = jedis.multi();
tx.decrBy("balanceA", 50);
tx.incrBy("balanceB", 50);
tx.exec();
System.out.println("=====轉賬結束=====");
// 解鎖全部被watch的key
jedis.unwatch();
System.out.println("======開始取款=====");
System.out.println("A賬戶可用餘額:" + jedis.get("balanceA"));
System.out.println("B賬戶可用餘額:" + jedis.get("balanceB"));
jedis.close();
}
}