package com.study.cache.redis.a0_example;import org.junit.Test;import org.junit.runner.RunWith;import org.springframework.test.context.ActiveProfiles;import org.springframework.test.context.ContextConfiguration;import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;import redis.clients.jedis.Jedis;import java.util.HashMap;import java.util.List;import java.util.Set;@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:applicationContext.xml")@ActiveProfiles("single")public class JedisTests { // 列表~ 集合数据存储~ java.util.List,java.util.Stack // 生产者消费者(简单MQ) @Test public void listTest() { Jedis jedis = new Jedis("127.0.0.1", 6379); // 插入数据 1、2、3 jedis.rpush("queue_1", "1"); jedis.rpush("queue_1", "2", "3"); List<String> stringList = jedis.lrange("queue_1", 0, -1); for (String str : stringList) { System.out.println(str); } // 消费者线程简例 while (true) { String item = jedis.lpop("queue_1"); if (item == null) { break; } System.out.println(item); } jedis.close(); } // 类似:在 redis 里面存储一个 hashmap // 推荐的方式,无特殊需求,一般的缓存都用这个 @Test public void hashTest() { HashMap<String, Object> user = new HashMap<>(); user.put("name", "tony"); user.put("age", 18); user.put("userId", 10001); System.out.println(user); Jedis jedis = new Jedis("127.0.0.1", 6379); jedis.hset("user_10001", "name", "tony"); jedis.hset("user_10001", "age", "18"); jedis.hset("user_10001", "userId", "10001"); System.out.println("redis 版本 ~~~"); System.out.println(jedis.hgetAll("user_10001")); jedis.close(); } // 用 set 实现交集、并集 // 交集示例:共同好友 // 并集示例:取出一个帖子 点赞|转发 的 @Test public void setTest() { // 取出两个人共同关注的好友 Jedis jedis = new Jedis("127.0.0.1", 6379); // 每个人维护一个 set jedis.sadd("user_A", "userC", "userD", "userE"); jedis.sadd("user_B", "userC", "userE", "userF"); // 取出共同关注 Set<String> sinter = jedis.sinter("user_A", "user_B"); System.out.println(sinter); // 检索给某一个帖子点赞|转发的 jedis.sadd("trs_tp_1001", "userC", "userD", "userF"); jedis.sadd("star_tp_1001", "userE", "userF"); // 取出所有人群 Set<String> union = jedis.sunion("trs_tp_1001", "star_tp_1001"); System.out.println(union); jedis.close(); } // 游戏排行榜 @Test public void zsetTest() { Jedis jedis = new Jedis("127.0.0.1", 6379); String ranksKeyName = "exam_rank"; jedis.zadd(ranksKeyName, 100.0, "zp1"); jedis.zadd(ranksKeyName, 82.0, "zp2"); jedis.zadd(ranksKeyName, 90.0, "zp3"); jedis.zadd(ranksKeyName, 96.0, "zp4"); jedis.zadd(ranksKeyName, 89.0, "zp5"); Set<String> stringSet = jedis.zrange(ranksKeyName, 0, 2); System.out.println("返回前三名:"); for (String s : stringSet) { System.out.println(s); } Long zcount = jedis.zcount(ranksKeyName, 85, 100); System.out.println("超过85分的数量:" + zcount); jedis.close(); }}