Redis缓存、泛型集合与json字符串的相互转换
在使用 Redis 做缓存时,经常需要将对象转为 json 格式,以便存储到 Redis 中,或者从 Redis 中读取出来时,将 json 转为对象。在 Java 中,可以使用泛型集合来方便的表示对象集合,再使用相关库来实现对象和 json 字符串之间的相互转化。
下面介绍一个 Redis 缓存、泛型集合与 json 字符串相互转换的实例。
1. 依赖
使用 Java Redis 客户端,需要添加如下依赖:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.7.0</version>
</dependency>
使用 fastjson 库实现对象和 json 字符串之间的转换,添加如下依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.73</version>
</dependency>
2. Redis 缓存示例
2.1 在 Redis 中存储和读取对象
import redis.clients.jedis.Jedis;
import com.alibaba.fastjson.JSON;
public class RedisExample {
private final static String HOST = "127.0.0.1";
private final static int PORT = 6379;
private final static String KEY = "user";
public static void main(String[] args) {
// 连接 Redis
Jedis jedis = new Jedis(HOST, PORT);
// 创建 User 对象
User user = new User();
user.setName("Alice");
user.setAge(18);
// 将 User 对象转为 json 字符串
String json = JSON.toJSONString(user);
// 存储到 Redis
jedis.set(KEY, json);
// 从 Redis 中读取
String result = jedis.get(KEY);
// 将 json 字符串转为 User 对象
User userFromRedis = JSON.parseObject(result, User.class);
System.out.println(userFromRedis.getName()); // 输出 "Alice"
System.out.println(userFromRedis.getAge()); // 输出 "18"
// 关闭连接
jedis.close();
}
}
2.2 在 Redis 中存储和读取泛型集合
import java.util.ArrayList;
import java.util.List;
import redis.clients.jedis.Jedis;
import com.alibaba.fastjson.JSON;
public class RedisExample {
private final static String HOST = "127.0.0.1";
private final static int PORT = 6379;
private final static String KEY = "userList";
public static void main(String[] args) {
// 连接 Redis
Jedis jedis = new Jedis(HOST, PORT);
// 创建 User 对象列表
List<User> userList = new ArrayList<>();
User user1 = new User();
user1.setName("Alice");
user1.setAge(18);
userList.add(user1);
User user2 = new User();
user2.setName("Bob");
user2.setAge(20);
userList.add(user2);
// 将 User 对象列表转为 json 字符串
String json = JSON.toJSONString(userList);
// 存储到 Redis
jedis.set(KEY, json);
// 从 Redis 中读取
String result = jedis.get(KEY);
// 将 json 字符串转为 User 对象列表
List<User> userListFromRedis = JSON.parseArray(result, User.class);
for (User user : userListFromRedis) {
System.out.println(user.getName() + " " + user.getAge());
}
// 输出 "Alice 18"
// 输出 "Bob 20"
// 关闭连接
jedis.close();
}
}
3. 实体类代码示例
public class User {
private String name;
private int age;
// Getters and Setters
}
总结
通过学习此实例,我们可以实现 Redis 缓存、泛型集合与 json 字符串的相互转换。在实际应用中,我们可以通过使用相关库来更加便捷地实现对象和 json 字符串之间的相互转化。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Redis缓存,泛型集合与json字符串的相互转换实例 - Python技术站