Java连接Redis,存储对象获取对象()byte和json),连接池
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();
}
__EOF__