首先导入依赖
redis.clients
jedis
2.9.1
org.springframework.data
spring-data-redis
2.1.10.RELEASE
com.fasterxml.jackson.core
jackson-databind
2.10.2
配置application.xml文件
测试类
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value = "classpath:application.xml")
public class AppTest {
@Autowired
private RedisTemplate redisTemplate;
@Test
public void testStr() {
//默认使用的是JDK序列化的编码
redisTemplate.opsForValue().set("username", "hello");
String result = (String) redisTemplate.opsForValue().get("username");
System.out.println(result);
redisTemplate.opsForValue().set("age", 20);
System.out.println(redisTemplate.opsForValue().increment("age"));
}
@Test
public void testEmp() {
Emp emp = new Emp(1001, "hello", new Date());
redisTemplate.opsForValue().set("emp:" + emp.getEmpno(), emp);
Emp result = (Emp) redisTemplate.opsForValue().get("emp:1001");
System.out.println(result.getEname() + ":" + result.getHiredate());
}
@Test
public void testAddEmps() {
List emps = new ArrayList<>();
for (int i = 0; i < 10; i++) {
Emp emp = new Emp(i, "hello" + i, new Date());
emps.add(emp);
}
redisTemplate.opsForValue().set("emps", emps);
List list = (List) redisTemplate.opsForValue().get("emps");
for (Emp emp : list) {
System.out.println(emp.getEname());
}
}
@Test
public void testHash() {
redisTemplate.opsForHash().put("emp", "ename", "张三");
String ename = (String) redisTemplate.opsForHash().get("emp", "ename");
System.out.println(ename);
RedisOperations redisOperations = redisTemplate.opsForHash().getOperations();
String empName = redisOperations.boundValueOps("ename").get();
System.out.println(empName);
Map result = redisTemplate.opsForHash().entries("emp");
for (String key : result.keySet()) {
System.out.println(key + ":" + result.get(key));
}
Emp emp = new Emp(1001, "张三", new Date());
Map empMap = new HashMap();
empMap.put("ename", emp.getEname());
empMap.put("empno", emp.getEmpno());
empMap.put("hiredate", emp.getHiredate());
redisTemplate.opsForHash().putAll("empmap", empMap);
redisTemplate.opsForHash().entries("empmap");
}
@Test
public void testList() {
redisTemplate.opsForList().rightPush("mylist", "hello");
redisTemplate.opsForList().rightPush("mylist", "world");
redisTemplate.opsForList().rightPush("mylist", "test");
redisTemplate.opsForList().rightPush("mylist", "woniu");
List list = redisTemplate.opsForList().range("mylist", 0, -1);
for (String s : list) {
System.out.println(s);
}
String str = (String) redisTemplate.opsForList().index("mylist", 1);
System.out.println(str);
str = (String) redisTemplate.opsForList().rightPop("mylist");
System.out.println("pop:" + str);
Long size = redisTemplate.opsForList().size("mylist");
System.out.println("size:" + size);
}
@Test
public void testSet() {
redisTemplate.opsForSet().add("myset", "hello");
redisTemplate.opsForSet().add("myset", "hello");
redisTemplate.opsForSet().add("myset", "world");
redisTemplate.opsForSet().add("myset", "test");
//获取所有元素
Set set = redisTemplate.opsForSet().members("myset");
for (String s : set) {
System.out.println(s);
}
System.out.println(redisTemplate.opsForSet().isMember("myset", "hello"));
}
@Test
public void testEmpSet() {
Emp emp1 = new Emp(1001, "emp1", new Date());
Emp emp2 = new Emp(1002, "emp2", new Date());
Emp emp3 = new Emp(1003, "emp3", new Date());
Emp emp4 = new Emp(1004, "emp3", new Date());
redisTemplate.opsForSet().add("myset1", emp1);//{}
redisTemplate.opsForSet().add("myset1", emp2);//{}
redisTemplate.opsForSet().add("myset1", emp3);//{}
redisTemplate.opsForSet().add("myset2", emp2);
redisTemplate.opsForSet().add("myset2", emp3);
redisTemplate.opsForSet().add("myset2", emp4);
Set set = redisTemplate.opsForSet().difference("myset1", "myset2");
for (Emp emp : set) {
System.out.println("差集:" + emp.getEmpno());
}
Set inter = redisTemplate.opsForSet().intersect("myset1", "myset2");
for (Emp emp : inter) {
System.out.println("交集:" + emp.getEmpno());
}
Set union = redisTemplate.opsForSet().union("myset1", "myset2");
for (Emp emp : union) {
System.out.println("并集:" + emp.getEmpno());
}
}
@Test
public void testZSet() {
redisTemplate.opsForZSet().add("scores", "zs", 88d);
redisTemplate.opsForZSet().add("scores", "lisi", 98d);
redisTemplate.opsForZSet().add("scores", "ww", 68d);
redisTemplate.opsForZSet().add("scores", "hello", 88d);
redisTemplate.opsForZSet().range("scores", 0, -1);
Set set = redisTemplate.opsForZSet().rangeByScoreWithScores("scores", 60d, 90d);
for (ZSetOperations.TypedTuple typedTuple : set) {
System.out.println("分数:" + typedTuple.getScore() + ",value:" + typedTuple.getValue());
}
redisTemplate.opsForZSet().incrementScore("scores", "zs", 5d);
Long count = redisTemplate.opsForZSet().count("scores", 60d, 90d);
System.out.println("count:" + count);
Long index = redisTemplate.opsForZSet().rank("scores", "hello");
System.out.println("index:" + index);
}
}
导入依赖
使用配置类配置Jedis和RedisTemplate
具体的有时间再写