Java連線Redis,儲存物件獲取物件()byte和json),連線池
阿新 • • 發佈:2020-07-30
Java連線Redis
Jedis連線Redis,Lettuce連線Redis
Jedis連線Redis
1. 建立maven專案
2. 引入依賴
<dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> </dependencies>
3. 測試
@Test
public void Test1() {
// 連線Redis
Jedis jedis = new Jedis("localhost", 6379);
// 操作Redis - 因為Redis命令是什麼,Jedis方法就是什麼
jedis.set("name", "李四");
// 釋放資源
jedis.close();
System.out.println(jedis.get("name"));
}
Jedis如何儲存一個物件到Redis
準備一個User實體類
@Data
@AllArgsConstructor
@NoArgsConstructor
public class User implements Serializable {
private String name;
private String Date;
}
匯入spring-context依賴
<dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.12</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.2.6.RELEASE</version> </dependency>
建立Demo測試類,編寫內容
@Test
public void Test2() {
// 連線Redis
Jedis jedis = new Jedis("localhost", 6379);
// 準備key(String) -value (user)
String key = "user";
User value = new User("張三", "1999");
// 將key和value轉換為byte[]
byte[] byteKey = SerializationUtils.serialize(key);
byte[] byteValue = SerializationUtils.serialize(value);
// 將key和value儲存到Redis
jedis.set(byteKey, byteValue);
// 釋放資源
jedis.close();
Jedis如何從Redis讀取一個物件
測試
@Test
public void Test3() {
// 連線Redis
Jedis jedis = new Jedis("localhost", 6379);
// 準備一個key
String key = "user";
// 將key轉換為位元組陣列型別
byte[] byteKey = SerializationUtils.serialize(key);
// jedis去redis中獲取value
byte[] value = jedis.get(byteKey);
// 將value反序列化
User user = (User) SerializationUtils.deserialize(value);
System.out.println(user);
// 釋放資源
jedis.close();
}
如何將一個物件以字串的形式儲存到Redis
匯入依賴
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.12</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.6.RELEASE</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.70</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
測試
@Test
public void test1(){
// 連線Redis
Jedis jedis = new Jedis("localhost",6379);
// 準備key(String) - value(User)
String key = "stringUser";
User value = new User("帥哥","19999");
// 使用fastJSON將value轉換為json字串
String stringValue = JSON.toJSONString(value);
// 儲存到Redis中
jedis.set(key,stringValue);
// 釋放資源
jedis.close();
}
如何得到Redis中以字串(JSON)存在形式的物件
依賴同上
測試
@Test
public void test2(){
// 連線Redis
Jedis jedis = new Jedis("localhost",6379);
//準備一個key
String key = "stringUser";
//去Redis中查詢value
String value = jedis.get(key);
//將value反序列化一個物件
User user = JSON.parseObject(value, User.class);
System.out.println("user = "+ user);
// 釋放資源
jedis.close();
}