用Jedis连接Redis

时间:2021-04-02 07:42:30

jedis中的方法名,和Redis的命令几乎一样

1.jar包,作为测试只需要一个jar

用Jedis连接Redis

2.代码

package com;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set; import org.junit.Before;
import org.junit.Test; import redis.clients.jedis.Jedis;
import redis.clients.jedis.Pipeline; /**
* 使用jedis连接Redis
*/
public class TestJedis { private Jedis j; /**
* 连接redis
*/
@Before
public void before(){ j = new Jedis("localhost", 6379);
} /**
* 操作String类型
*
*/
@Test
public void test00(){ //添加数据:添加数据时,若key值相同,则value的值会覆盖
j.set("name1", "李四"); //添加数据并设置有效期:第二个参数为有效时间:10秒,超过时间key自动销毁
j.setex("name2", 10, "有效期10秒"); //添加多条数据
j.msetnx("name3", "王五","name4","赵六"); //删除
j.del("name2"); //取数据
System.out.println( j.get("name1") ); //查看key的剩余时间
System.out.println( j.ttl("name3") ); //批量获取key
List<String> mget = j.mget("name1","name3"); for (String string : mget) {
System.out.println(string);
}
} /**
* List类型
*/
@Test
public void test01(){ //清空数据库
j.flushDB(); //向key=name1,添加三条数据
j.lpush("name1", "张三","李四","王五"); //按下标取出数据,0代表第一个元素,-1代表最后一个元素
List<String> list = j.lrange("name1", 0, -1);
for (String string : list) {
System.out.println(string);
} //除了第一个元素,其他全部删除
j.ltrim("name1", 0, 0); } /**
* HashSet
*/
//
@Test
public void test02(){
//清空数据库
j.flushDB(); //添加
j.sadd("name1", "1","2","3"); //查所有
Set<String> smembers = j.smembers("name1");
for (String string : smembers) {
System.out.println(string);
}
} /**
* SortedSet
*/ @Test
public void test3(){
j.del("name1"); //添加分数为1好2的两条数据
j.zadd("name1", 3, "张三");
j.zadd("name1",1,"李四"); //
Set<String> zrange = j.zrange("name1", 0, -1);
for (String string : zrange) {
System.out.println(string); // 输出: 李四,张三
}
} /**
* HashMap
*/
@Test
public void test04(){
j.del("name1");
//添加map源数据
HashMap<String,String> map = new HashMap<String,String>();
map.put("name1", "张三");
map.put("name2", "李四"); //向Redis添加数据
j.hmset("names", map); //查询map中的数据
List<String> hmget = j.hmget("names","name1","name2");
for (String string : hmget) {
System.out.println(string);
}
} /**
* 批量插入
*/
@Test
public void test05(){
//开始时间
long begin = System.currentTimeMillis(); //批量插入
Pipeline pipelined = j.pipelined(); for (int i = 0; i < 100000; i++) { pipelined.set("name"+ i, "value"+i);
}
//释放
pipelined.sync(); //结束时间
long end = System.currentTimeMillis(); System.out.println( ( (end - begin) /1000.0 ) +"秒");
} }