1,java配置redis用戶端
public class RedisClient implements Serializable{ private Jedis jedis; private JedisPool jedisPool; ShardedJedis shardedJedis; private ShardedJedisPool shardedJedisPool; public RedisClient(){ initialPool(); initialSharePool(); shardedJedis = shardedJedisPool.getResource(); jedis = jedisPool.getResource(); } /** * 初始化非切片池 */ private void initialPool(){ //池基本配置 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxActive(20); config.setMaxIdle(5); config.setMaxWait(10001); config.setTestOnBorrow(false); jedisPool = new JedisPool(config, Enums.LINUX_HOST.getValue(), 6379); } /** * 初始化切片池 */ private void initialSharePool(){ //池基本配置 JedisPoolConfig config = new JedisPoolConfig(); config.setMaxActive(20); config.setMaxIdle(5); config.setMaxWait(10001); config.setTestOnBorrow(false); //slave串連 List<JedisShardInfo> shardInfos = new ArrayList<JedisShardInfo>(); shardInfos.add(new JedisShardInfo(Enums.LINUX_HOST.getValue(), 6379, 1000)); //構造池 shardedJedisPool = new ShardedJedisPool(config, shardInfos); }}
2,數組和對象的相互轉化
1,對象實現Serializable介面,才可以序列化和還原序列化
2,對象和數組相互轉化的代碼
public class ObjectAndByte { public static byte[] toByteArray (Object obj) { byte[] bytes = null; try { // object to bytearray ByteArrayOutputStream bo = new ByteArrayOutputStream(); ObjectOutputStream oo = new ObjectOutputStream(bo); oo.writeObject(obj); bytes = bo.toByteArray(); bo.close(); oo.close(); } catch (Exception e) { System.out.println("translation" + e.getMessage()); e.printStackTrace(); } return bytes; } /** * 數組轉對象 * @param bytes * @return */ public static Object toObject (byte[] bytes) { Object obj = null; try { ByteArrayInputStream bis = new ByteArrayInputStream (bytes); ObjectInputStream ois = new ObjectInputStream (bis); obj = ois.readObject(); ois.close(); bis.close(); } catch (IOException ex) { ex.printStackTrace(); } catch (ClassNotFoundException ex) { ex.printStackTrace(); } return obj; }}
3,測試