版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a909301740/article/details/81865072
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();
}
}