redis在java中不能直接使用需要jedis來做中間轉換。
所需jar包:
1.String類型
string是redis最基本的類型,一個key對應一個value。string類型是二進制安全的。意思是redis的string可以包含任何數據。value只最多是512M。在java中代碼如下:
package com.gsl.redis;
import redis.clients.jedis.Jedis;
/**
* <br>
* <b>說明:</b> 在Java中使用redis中的String類型
* <b>作者:</b> Guo.shiLin
* <b>日期:</b> 2018年8月9日
* @version 1.0
*/
public class RedisStringJava {
public static void main(String[] args) {
//連接本地redis服務器
Jedis jedis = new Jedis("localhost");
System.out.println("本地Redis連接成功!");
//爲redis設置key-value值
jedis.set("baidu", "www.baidu.com");
System.out.println("保存值成功!");
System.out.println("獲取key的值:" + jedis.get("baidu"));
}
}
2.list類型
redis列表是簡單的字符串列表,按照插入的順序排序。底層就是一個鏈表。Java代碼如下:
package com.gsl.redis;
import java.util.List;
import redis.clients.jedis.Jedis;
/**
*
* <br>
* <b>說明:</b> redis list類型底層是一個鏈表,按照插入的順序進行排序。
* <b>作者:</b> Guo.shiLin
* <b>日期:</b> 2018年8月9日
* @version 1.0
*/
public class RedisListJava {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
System.out.println("本地redis連接成功");
//存儲數據到列表中
jedis.lpush("IT", "JAVA");
jedis.lpush("IT", "PHP");
jedis.lpush("IT", "C++");
//獲取存儲的數據並輸出
List<String> list = jedis.lrange("IT", 0, 3);
list.forEach(string -> System.out.println(string));
}
}
3.set集合
類似list的無序集合,保證列表中不會有重複數據。它是通過HashTable來實現的。Java代碼如下:
package com.gsl.redis;
import redis.clients.jedis.Jedis;
/**
* <br>
* <b>說明:</b> 在Java中redis set的使用,不能放重複元素。
* <b>作者:</b> Guo.shiLin
* <b>日期:</b> 2018年8月15日
* @version 1.0
*/
public class RedisSetDemo {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
System.out.println("連接本地的 Redis 服務成功!");
//清空user
jedis.del("user");
//添加
jedis.sadd("user", "Tom");
jedis.sadd("user", "Tom");
jedis.sadd("user", "chenze");
jedis.sadd("user", "likui");
jedis.sadd("user", "liumen");
//刪除chenze
jedis.srem("user", "chenze");
System.out.println(jedis.smembers("user"));//獲取所有的value
System.out.println(jedis.sismember("user", "likui"));//判斷集合中是否有該元素
System.out.println(jedis.scard("user"));//返回集合的元素個數
}
}
4.sort排序
代碼如下:
package com.gsl.redis;
import redis.clients.jedis.Jedis;
/**
* <br>
* <b>說明:</b> redis zset排序
* <b>作者:</b> Guo.shiLin
* <b>日期:</b> 2018年8月15日
* @version 1.0
*/
public class RedisSortDemo {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
System.out.println("連接本地的 Redis 服務成功!");
//jedis排序
//注意,此處rpush和lpush是list的操作。是一個雙向鏈表
jedis.del("a");//先清除數據
jedis.rpush("a", "1");
jedis.rpush("a", "6");
jedis.rpush("a", "4");
jedis.rpush("a", "9");
jedis.rpush("a", "2");
System.out.println(jedis.lrange("a", 0, -1));
System.out.println(jedis.sort("a"));
System.out.println(jedis.lrange("a", 0, -1));
}
}
5.Hash
Redis hash 是一個鍵值對集合。Redis hash是一個string類型的field和value的映射表,hash特別適合用於存儲對象。代碼如下:
package com.gsl.redis;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import redis.clients.jedis.Jedis;
/**
* <br>
* <b>說明:</b> redis對Map的使用
* <b>作者:</b> Guo.shiLin
* <b>日期:</b> 2018年8月13日
* @version 1.0
*/
public class RedisMapDemo {
public static void main(String[] args) {
Jedis jedis = new Jedis("localhost");
System.out.println("本地redis連接成功");
//創建hashMap並添加數據
Map<String, String> hashMap = new HashMap<String, String>();
hashMap.put("name", "Tom");
hashMap.put("age", "12");
hashMap.put("sex", "man");
//添加hash類型數據
jedis.hmset("user", hashMap);
//第一個參數是redis中hash類型的key,第二、三、四個參數是map裏面對用的key
List<String> rsmap = jedis.hmget("user", "name", "age", "sex");
System.out.println(rsmap);
//刪除map中的sex元素
jedis.hdel("user", "sex");
System.out.println(jedis.hmget("user", "sex"));//因爲刪除了所以返回null
System.out.println(jedis.hlen("user"));//查看Map有多少元素
System.out.println(jedis.exists("user"));//判斷是否有user這個元素
System.out.println(jedis.hkeys("user"));//獲取user的key
System.out.println(jedis.hvals("user"));//獲取user的值
Iterator<String> iterator = jedis.hkeys("user").iterator();
while (iterator.hasNext()) {
String key = iterator.next();
System.out.println(key + ":" + jedis.hmget("user", key));
}
}
}