Maven
<!-- https://mvnrepository.com/artifact/redis.clients/jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.9.0</version> </dependency> <!-- https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis --> <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-redis</artifactId> <version>1.6.2.RELEASE</version> </dependency>
连接池
import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class JedisPoolUtil { private static JedisPool jedisPool; public static Integer max_active = 300; public static Integer max_idle = 100; public static Integer max_wait = 1000; public static Boolean test_on_borrow = true; public static String url = "127.0.0.1"; public static Integer port = 6379; public synchronized static void init() { JedisPoolConfig jpc = new JedisPoolConfig(); jpc.setMaxTotal(max_active); jpc.setMaxIdle(max_idle); jpc.setMaxWaitMillis(max_wait); jpc.setTestOnBorrow(test_on_borrow); jedisPool = new JedisPool(jpc, url, port); } public static Jedis getJedis() { if (jedisPool == null) { init(); } return jedisPool.getResource(); } }
消息
import java.io.Serializable; public class JedisMs implements Serializable { private static final long serialVersionUID = -4561553528452349130L; private int id; private String content; public JedisMs(int id, String content) { this.id = id; this.content = content; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
工具
import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; public class ObjectUtil { private ObjectUtil() { } /** * 对象序列化为byte数组 * * @param obj * @return */ public static byte[] beanToByte(Object obj) { byte[] bts = null; try (ByteArrayOutputStream byteArray = new ByteArrayOutputStream(); ObjectOutputStream outputStream = new ObjectOutputStream(byteArray)) { outputStream.writeObject(obj); outputStream.flush(); bts = byteArray.toByteArray(); } catch (IOException e) { e.printStackTrace(); } return bts; } /** * 字节数组转为Object对象 * * @param bytes * @return */ public static Object byteToObj(byte[] bytes) { Object readObject = null; try (ByteArrayInputStream in = new ByteArrayInputStream(bytes); ObjectInputStream inputStream = new ObjectInputStream(in)) { readObject = inputStream.readObject(); } catch (Exception e) { e.printStackTrace(); } return readObject; } }
测试
import fun.ehe.redis.JedisMs; import fun.ehe.redis.JedisPoolUtil; import fun.ehe.util.ObjectUtil; import redis.clients.jedis.Jedis; public class Main { static Jedis jedis = JedisPoolUtil.getJedis(); static { if (jedis.llen("key".getBytes()) == 0) { for (int i = 0; i < 10; i++) { jedis.lpush("key".getBytes(), ObjectUtil.beanToByte(new JedisMs(i, "Ms" + i))); } if (jedis.isConnected()) { T.t(Main.class, "jedis.isConnected", jedis.isConnected()); jedis.disconnect(); T.t(Main.class, "jedis.isConnected", jedis.isConnected()); } T.t(Main.class, "llen:", jedis.llen("key".getBytes())); } } public static void main(String[] args) { Object temp = ObjectUtil.byteToObj(jedis.rpop("key".getBytes())); if (temp != null) { JedisMs ms = (JedisMs) temp; T.t(Main.class, ms.getId(), ms.getContent()); } } }