Jedis Client的使用以及序列化

JedisPool pool = new JedisPool(poolConfig, IP, PORT, timeout);
public String set(String key,String value) {
Jedis jedis = null;
boolean success = true;
try {
jedis = this.pool.getResource();
return jedis.set(key, value);
}catch (JedisException e) {
success  = false;
if(jedis != null){
//jedis异常,销毁
pool.returnBrokenResource(jedis);
}
throw e;
}catch (Exception e) {
system.out.println("jedis  exception");
}finally{
if(success && jedis != null){
//需要还回给pool
this.pool.returnResource(jedis);
}
}
}

------------------------jedis序列化RedisSerializeUtil --------------

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
public class RedisSerializeUtil {
//序列化
public static byte[] serialize(Object object){
ObjectOutputStream objectOutputStream = null;
   ByteArrayOutputStream byteArrayOutputStream = null;
   try {
    byteArrayOutputStream = new ByteArrayOutputStream();
    objectOutputStream = new ObjectOutputStream(byteArrayOutputStream);
    objectOutputStream.writeObject(object);
    byte[] bytes = byteArrayOutputStream.toByteArray();
            return bytes;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
// 反序列化
public static Object deSeialize(byte[] bytes) {
ByteArrayInputStream byteArrayOutputStream = null;
try {
byteArrayOutputStream = new ByteArrayInputStream(bytes);
ObjectInputStream objectInputStream = new ObjectInputStream(byteArrayOutputStream);
return objectInputStream.readObject();
} catch (Exception e) {
system.out.println("deserialize exception");

}
return null;
}
public static void main(String[] args) {
String str = "tobytes";
System.out.print(RedisSerializeUtil.deSeialize(RedisSerializeUtil.serialize(str)));
}
}


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Jedis提供了多种序列化器,可以通过配置来选择使用不同的序列化器。下面以使用Jackson序列化器为例,介绍如何在Jedis使用指定的序列化器: 1. 添加依赖,包括jedis和jackson-databind: ``` <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>3.6.0</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.12.4</version> </dependency> ``` 2. 创建JedisPoolConfig对象,设置Jedis连接池的相关参数: ``` JedisPoolConfig poolConfig = new JedisPoolConfig(); poolConfig.setMaxTotal(100); poolConfig.setMaxIdle(20); poolConfig.setMinIdle(10); ``` 3. 创建JedisPool对象,并设置Jackson序列化器: ``` JedisPool jedisPool = new JedisPool(poolConfig, "localhost", 6379); ObjectMapper objectMapper = new ObjectMapper(); Jackson2JsonRedisSerializer<Object> jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer<>(Object.class); jackson2JsonRedisSerializer.setObjectMapper(objectMapper); jedisPool.getResource().getClient().setSerializer(jackson2JsonRedisSerializer); ``` 这里使用了Jackson2JsonRedisSerializer作为Jedis序列化器,并将ObjectMapper对象设置为其内部使用的ObjectMapper。这里还需要使用JedisPool的getResource方法获取Jedis实例,并使用getClient方法获取Jedis的客户端对象,然后调用setSerializer方法设置序列化器。 4. 使用Jedis实例操作Redis: ``` Jedis jedis = jedisPool.getResource(); String key = "myKey"; MyObject myObject = new MyObject(); byte[] bytes = jackson2JsonRedisSerializer.serialize(myObject); jedis.set(key.getBytes(), bytes); byte[] result = jedis.get(key.getBytes()); MyObject myObjectResult = (MyObject) jackson2JsonRedisSerializer.deserialize(result); ``` 这里使用Jedis实例来进行Redis的操作,其中包括将一个Java对象序列化为JSON格式,并存储到Redis中,以及从Redis中获取数据,并将其反序列化为Java对象。需要注意的是,在序列化和反序列化时,使用了之前创建的Jackson2JsonRedisSerializer对象来处理数据。 通过以上步骤,我们就可以在Jedis使用指定的序列化器来进行数据的序列化和反序列化了。需要根据实际情况选择合适的序列化器,并进行相应的配置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值