Java 使用 Redis
目前使用Java连接最流行的要数Jedis了。
要使用Jedis需要在Java的项目工程中添加Jedis的Jar包。
step1 使用Maven新建一个Java工程
不会maven的同学可以先百度一下。
step2 引入依赖
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
step3 编写测试用例
public class JedisTest {
private Jedis jedis;
//连接redis
@Before
public void connection() {
//连接本地的 Redis 服务
//Jedis jedis = new Jedis("192.168.101.102",6379);
jedis = new Jedis("192.168.8.102");
//jedis.auth("123");
System.out.println("连接成功");
//查看服务是否运行
System.out.println("服务正在运行: "+jedis.ping());
}
//测试keys
@Test
public void keysTest() {
Set<String> keys = jedis.keys("*");
Arrays
.asList(keys)
.stream()
.forEach(System.out::println);
}
//清空数据
@Test
public void flushDb() {
jedis.flushDB();
//jedis.flushAll();
}
//测试 string
@Test
public void stringTest() {
jedis.set("name", "张三");
System.out.println(jedis.get("name"));
}
//测试 list
@Test
public void listTest() {
jedis.lpush("color", "red","blue","green");
jedis
.lrange("color", 0, 2)
.stream()
.forEach(System.out::println);
}
//测试 set
@Test
public void setTest() {
jedis
.sadd("pet", "dog","cat","mouse");
jedis
.smembers("pet")
.stream()
.forEach(System.out::println);
}
//测试 zset
@Test
public void zsetTest() {
jedis.zadd("sport", 0, "football");
jedis.zadd("sport", 0, "basketball");
jedis.zadd("sport", 0, "swim");
jedis
.zrange("sport", 0, 3)
.stream()
.forEach(System.out::println);
}
//测试 hash
@Test
public void hashTest() {
jedis.hset("user", "name", "zhangsan");
jedis.hset("user", "age", "20");
jedis.hset("user", "sex", "male");
jedis
.hgetAll("user")
.entrySet()
.stream()
.forEach((entry) -> {
System.out.println(entry.getKey() + "::" + entry.getValue());
});
}
//测试pipline 发送多条指令
@Test
public void piplineTest() {
Set<String> keys = jedis.keys("user:*");
List<Object> result = new ArrayList<>();
Pipeline pipelined = jedis.pipelined();
long t1 = System.currentTimeMillis();
for (String key : keys) {
pipelined.get(key);
}
result = pipelined.syncAndReturnAll();
result
.stream()
.forEach(System.out::println);
System.out.println(System.currentTimeMillis() - t1);
}
//事务测试
@Test
public void multiTest() {
Transaction multi = jedis.multi();
try {
jedis.watch("name1");
multi.set("name1", "zhangsan");
multi.set("name2","lisi");
List<Object> exec = multi.exec();
exec
.stream()
.forEach(System.out::println);
} catch (Exception e) {
e.printStackTrace();
multi.discard();
}
jedis.unwatch();
}
}