redis是用鍵值對的形式來保存數據,鍵類型只能是String,可是值類型能夠有String、List、Hash、Set、Sorted Set五種,來知足不一樣場景的特定需求。css
本博客中的示例不是將控制檯做爲redis的一個客戶端,而是將redis運用在java裏進行測試java
須要有java redis的驅動包,能夠經過引入maven的依賴便可mysql
<dependency> <groupId>org.rarefiedredis.redis</groupId> <artifactId>redis-java</artifactId> <version>0.0.17</version> </dependency>
String類型是最基礎的一種key-value存儲形式,value其實不單單能夠是String,也能夠是數值類型。經常用來作計數器這類自增自減的功能,可用在粉絲數、微博數等。redis
1 //鏈接本地的 Redis 服務 2 Jedis jedis = new Jedis("localhost"); 3 System.out.println("鏈接成功"); 4 //查看服務是否運行 5 System.out.println("服務正在運行: "+jedis.ping()); 6 //String實例 7 jedis.set("hello", String.valueOf(1)); 8 jedis.incr("hello"); 9 jedis.set("hello1","word1"); 10 System.out.println(jedis.get("hello")); 11 System.out.println(jedis.mget("hello","hello1"));
list就是鏈表,在redis實現爲一個雙向鏈表,能夠從兩邊插入、刪除數據。應用場景能夠有微博的關注列表、粉絲列表、消息列表等。sql
有一個lrange函數,能夠從某個元素開始讀取多少個元素,可用來實現分頁功能。maven
1 /*list實例,雙向鏈表結構,適合作消息隊列, 2 但其實真正應用中通常都會用專門作消息隊列的中間件例如RabbitMQ*/ 3 jedis.lpush("201宿舍","hlf"); 4 jedis.lpush("201宿舍","css"); 5 jedis.lpush("201宿舍","ty"); 6 jedis.lpush("201宿舍","jy"); 7 List<String> name = jedis.lrange("201宿舍",0,3); 8 for (String person:name 9 ) { 10 System.out.print(person+" "); 11 }
hash就是值類型存儲的是一個鍵值對形式,適合存儲對象類型信息,例如我的信息、商品信息等。函數
1 //hash實例,適合存儲對象 2 HashMap<String,String> map = new HashMap<String, String>(); 3 map.put("name","hlf"); 4 map.put("sex","女"); 5 map.put("age","21"); 6 jedis.hmset("hlf",map); 7 jedis.hset("hlf","major","software"); 8 Map<String,String> map1 = jedis.hgetAll("hlf"); 9 String age = jedis.hget("hlf","age"); 10 System.out.println(map1); 11 System.out.println(age);
set表示存儲的一個元素不重合的集合,由於set集合支持查緝、並集操做,所以適合作共同好友等功能測試
1 //set實例 2 jedis.sadd("set","hhh"); 3 jedis.sadd("set","ff"); 4 jedis.sadd("set","hhh"); 5 System.out.println(jedis.smembers("set")); 6 jedis.sadd("set1","oo"); 7 jedis.sadd("set1","ff"); 8 System.out.println("交集:"+jedis.sinter("set","set1")); 9 System.out.println("合集:"+jedis.sunion("set","set1"));
相對於Set,Sorted Set多了一個Score做爲權重,使集合裏面的元素能夠按照score排序,注意它是Set,因此它裏面的元素也不能重複spa
//sorted set實例 jedis.zadd("set2",4,"redis"); jedis.zadd("set2",3,"mysql"); jedis.zadd("set2",2,"kk"); jedis.zadd("set2",1,"redis"); System.out.println(jedis.zrangeByScore("set2",0,4));