開始在 Java 中使用 Redis 前, 首先須要確保已經安裝了 redis 服務及 Java redis 驅動,且你的機器上能正常使用 Java。安裝配置Redis:java
maven配置以下web
<dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency>
使用Jedis鏈接並測試
import org.junit.Test; import redis.clients.jedis.Jedis; import java.util.*; /** * @author: dx * @date:2019-03-26 */ public class RedisJava { private static Jedis jedis; static { // 鏈接本地redis服務 jedis = new Jedis("localhost"); } // Redis Java String(字符串) 實例 @Test public void testString(){ // 設置redis字符串數據 jedis.set("top", "this is test on redis ..."); jedis.set("name", "lw"); // 獲取存儲數據並輸出 System.out.printf("top 的數據爲: %s\n", jedis.get("top")); System.out.printf("name 的數據爲: %s\n", jedis.get("name")); // 追加字符 jedis.append("name", " 這是個人英文名字縮寫!"); System.out.println("name >> " + jedis.get("name")); // 刪除鍵 Long result = jedis.del("top"); System.out.println(result > 0 ? "刪除 top 成功!" : "刪除 top 失敗!"); // 1表示成功, 0表示失敗。 // 設置多個鍵值對 jedis.mset("age", "13", "addr", "上海市"); System.out.println(jedis.mget("name", "age", "addr")); } // Redis Java List(列表) 實例 @Test public void testList(){ // 存儲數據到redis的list中 jedis.lpush("c-list", "china"); jedis.lpush("c-list", "Google"); jedis.lpush("c-list", "Taobao"); // 獲取數據並遍歷輸出 //你也能夠使用負數下標,以 -1 表示列表的最後一個元素, -2 表示列表的倒數第二個元素,以此類推。 List<String> list = jedis.lrange("c-list",0, -1); for (String clist : list) { System.out.printf("list in redis name c-list: %s\n", clist); } // lpushx key value 將一個值插入到已存在的列表頭部 jedis.lpushx("c-list", "tongren"); System.out.println(jedis.lrange("c-list", 0, -1)); //rpush key value1 [value2] 在列表中添加一個或多個值 jedis.rpush("c-list", "lw", "dx"); System.out.println(jedis.lrange("c-list", 0, -1)); } // Redis java Set @Test public void testSet() { // 獲取數據並輸出 Set<String> keys = jedis.keys("*"); Iterator<String> it = keys.iterator(); while (it.hasNext()) { String key = it.next(); System.out.println(key); } //向集合添加一個或多個成員 jedis.sadd("webSite", "阿里巴巴", "騰訊"); jedis.sadd("webSite", "網易"); //SCARD key 獲取集合的成員數 System.out.println(jedis.scard("webSite")); //SMEMBERS key 返回集合中的全部成員 返回類型列表[阿里巴巴, 騰訊, 網易]注意順序不惟一 System.out.println(jedis.smembers("webSite")); //SSCAN key cursor [MATCH pattern] [COUNT count] 迭代集合中的元素 System.out.println(jedis.sscan("webSite", 0)); } // Redis java Hash @Test public void testHash() { Map<String, String> map = new HashMap<>(); map.put("name", "lw"); map.put("age", "22"); // hmset 將 map 存入redis中 jedis.hmset("user", map); // hmget 讀取map數據 System.out.println(jedis.hmget("user", "name", "age")); // hkeys 讀取 map 中的全部 keys System.out.println(jedis.hkeys("user")); // hvals 讀取 map 中的全部 value System.out.println(jedis.hvals("user")); // hlen 獲取 map 中的有多少個字段 System.out.println(jedis.hlen("user")); //獲取全部的鍵 迭代操做 Iterator<String> iterator = jedis.hkeys("user").iterator(); while(iterator.hasNext()){ String key = iterator.next(); System.out.println(key + " : " + jedis.hmget("user", key)); } } //sorted set有序Set @Test public void testSortSet() { // Redis 有序集合和集合同樣也是string類型元素的集合,且不容許重複的成員。 // 不一樣的是每一個元素都會關聯一個double類型的分數。redis正是經過分數來爲集合中的成員進行從小到大的排序。 // 有序集合的成員是惟一的,但分數(score)卻能夠重複。 jedis.zadd("city", 0, "北京"); jedis.zadd("city", 1, "上海"); jedis.zadd("city", 1, "上海2"); jedis.zadd("city", 2, "杭州"); //ZCARD key 獲取有序集合的成員數 System.out.println( jedis.zcard("city") ); //ZREVRANK key member 返回有序集合中指定成員的排名,有序集成員按分數值遞減(從大到小)排序 java中的方法是zrevrangeByScore //2指的是最大的分數 Set<String> a = jedis.zrevrangeByScore("city", 2, 0); System.out.println( a ); } }