redis使用fastjson序列化配置
时间: 2023-06-14 15:03:59 浏览: 79
Redis是一种非关系型数据库,支持多种数据类型的存储,其中之一就是字符串类型。在Redis中,可以使用fastjson对对象进行序列化,然后将其存储为字符串类型的值。
以下是使用fastjson进行序列化和反序列化的示例代码:
```java
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.serializer.SerializerFeature;
import redis.clients.jedis.Jedis;
public class RedisUtil {
private Jedis jedis;
public RedisUtil() {
jedis = new Jedis("localhost", 6379);
}
public void set(String key, Object value) {
String jsonValue = JSON.toJSONString(value, SerializerFeature.WriteClassName);
jedis.set(key, jsonValue);
}
public <T> T get(String key, Class<T> clazz) {
String jsonValue = jedis.get(key);
return JSON.parseObject(jsonValue, clazz);
}
}
```
上述示例代码中,我们使用fastjson的JSON类进行序列化和反序列化。在序列化时,我们使用了SerializerFeature.WriteClassName参数,这样可以将对象的类名写入生成的JSON字符串中,以便在反序列化时能够正确地识别出对象的类型。
使用示例:
```java
public static void main(String[] args) {
RedisUtil redisUtil = new RedisUtil();
// 存储对象
User user = new User(1, "张三", 20);
redisUtil.set("user:1", user);
// 获取对象
User user1 = redisUtil.get("user:1", User.class);
System.out.println(user1);
}
```
在这个示例中,我们首先创建了一个User对象,并将其存储在Redis中。然后,我们通过get方法从Redis中获取了这个对象,并进行了打印输出。