开始在 Java 中使用 Redis 前, 首先需要确保已经安装了 redis 服务及 Java redis 驱动,且你的机器上能正常使用 Java。安装配置Redis:
maven配置如下
1<dependency> 2 <groupId>redis.clients</groupId> 3 <artifactId>jedis</artifactId> 4 <version>2.9.0</version> 5</dependency> 6 7使用Jedis连接并测试

1import org.junit.Test; 2import redis.clients.jedis.Jedis; 3 4import java.util.*; 5 6/** 7 * @author: dx 8 * @date:2019-03-26 9 */ 10public class RedisJava { 11 12 private static Jedis jedis; 13 14 static { 15 // 连接本地redis服务 16 jedis = new Jedis("localhost"); 17 } 18 19 // Redis Java String(字符串) 实例 20 @Test 21 public void testString(){ 22 // 设置redis字符串数据 23 jedis.set("top", "this is test on redis ..."); 24 jedis.set("name", "lw"); 25 // 获取存储数据并输出 26 System.out.printf("top 的数据为: %s\n", jedis.get("top")); 27 System.out.printf("name 的数据为: %s\n", jedis.get("name")); 28 29 // 追加字符 30 jedis.append("name", " 这是我的英文名字缩写!"); 31 System.out.println("name >> " + jedis.get("name")); 32 33 // 删除键 34 Long result = jedis.del("top"); 35 System.out.println(result > 0 ? "删除 top 成功!" : "删除 top 失败!"); // 1表示成功, 0表示失败。 36 37 // 设置多个键值对 38 jedis.mset("age", "13", "addr", "上海市"); 39 System.out.println(jedis.mget("name", "age", "addr")); 40 } 41 42 // Redis Java List(列表) 实例 43 @Test 44 public void testList(){ 45 // 存储数据到redis的list中 46 jedis.lpush("c-list", "china"); 47 jedis.lpush("c-list", "Google"); 48 jedis.lpush("c-list", "Taobao"); 49 50 // 获取数据并遍历输出 51 //你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。 52 List<String> list = jedis.lrange("c-list",0, -1); 53 for (String clist : list) { 54 System.out.printf("list in redis name c-list: %s\n", clist); 55 } 56 57 // lpushx key value 将一个值插入到已存在的列表头部 58 jedis.lpushx("c-list", "tongren"); 59 System.out.println(jedis.lrange("c-list", 0, -1)); 60 61 //rpush key value1 [value2] 在列表中添加一个或多个值 62 jedis.rpush("c-list", "lw", "dx"); 63 System.out.println(jedis.lrange("c-list", 0, -1)); 64 } 65 66 // Redis java Set 67 @Test 68 public void testSet() { 69 // 获取数据并输出 70 Set<String> keys = jedis.keys("*"); 71 Iterator<String> it = keys.iterator(); 72 while (it.hasNext()) { 73 String key = it.next(); 74 System.out.println(key); 75 } 76 77 //向集合添加一个或多个成员 78 jedis.sadd("webSite", "阿里巴巴", "腾讯"); 79 jedis.sadd("webSite", "网易"); 80 //SCARD key 获取集合的成员数 81 System.out.println(jedis.scard("webSite")); 82 //SMEMBERS key 返回集合中的所有成员 返回类型列表[阿里巴巴, 腾讯, 网易]注意顺序不唯一 83 System.out.println(jedis.smembers("webSite")); 84 //SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素 85 System.out.println(jedis.sscan("webSite", 0)); 86 } 87 88 // Redis java Hash 89 @Test 90 public void testHash() { 91 Map<String, String> map = new HashMap<>(); 92 map.put("name", "lw"); 93 map.put("age", "22"); 94 95 // hmset 将 map 存入redis中 96 jedis.hmset("user", map); 97 98 // hmget 读取map数据 99 System.out.println(jedis.hmget("user", "name", "age")); 100 101 // hkeys 读取 map 中的所有 keys 102 System.out.println(jedis.hkeys("user")); 103 // hvals 读取 map 中的所有 value 104 System.out.println(jedis.hvals("user")); 105 // hlen 获取 map 中的有多少个字段 106 System.out.println(jedis.hlen("user")); 107 108 //获取所有的键 迭代操作 109 Iterator<String> iterator = jedis.hkeys("user").iterator(); 110 while(iterator.hasNext()){ 111 String key = iterator.next(); 112 System.out.println(key + " : " + jedis.hmget("user", key)); 113 } 114 } 115 116 //sorted set有序Set 117 @Test 118 public void testSortSet() { 119// Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。 120// 不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。 121// 有序集合的成员是唯一的,但分数(score)却可以重复。 122 jedis.zadd("city", 0, "北京"); 123 jedis.zadd("city", 1, "上海"); 124 jedis.zadd("city", 1, "上海2"); 125 jedis.zadd("city", 2, "杭州"); 126 127 //ZCARD key 获取有序集合的成员数 128 System.out.println( jedis.zcard("city") ); 129 //ZREVRANK key member 返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序 java中的方法是zrevrangeByScore 130 //2指的是最大的分数 131 Set<String> a = jedis.zrevrangeByScore("city", 2, 0); 132 System.out.println( a ); 133 } 134 135}
View Code