亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

jedis這么序列化和反序列化

jedis這么序列化和反序列化

fenkapian 2017-05-06 16:32:47
下面就是代碼,麻煩大師解讀一下啊,太難了private Logger logger = LoggerFactory.getLogger(this.getClass());private final JedisPool jedisPool; ?//類似數據庫連接池private RuntimeSchema<Seckill> schema = RuntimeSchema.createFrom(Seckill.class);public RedisDao(String ip, int port) { ? ?jedisPool = new JedisPool(ip, port);}public Seckill getSeckill(long seckillId) { ? ?//redis操作邏輯 ? ?try { ? ? ? ?Jedis jedis = jedisPool.getResource(); ? ? ? ?try { ? ? ? ? ? ?String key = "seckill: " + seckillId; ? ? ? ? ? ?byte[] bytes = jedis.get(key.getBytes()); ? ? ? ? ? ?if (bytes != null) { ? ? ? ? ? ? ? ?Seckill seckill = schema.newMessage(); ?//創建空對象 ? ? ? ? ? ? ? ?ProtobufIOUtil.mergeFrom(bytes, seckill, schema); ? ? ? ? ? ? ? ?//seckill被反序列化 ? ? ? ? ? ? ? ?return seckill; ? ? ? ? ? ?} ? ? ? ?} finally { ? ? ? ? ? ?jedis.close(); ? ? ? ?} ? ?} catch (Exception e) { ? ? ? ?logger.error(e.getMessage(), e); ? ?} ? ?return null;}public String putSeckill(Seckill seckill) { ? ?//set Object(Seckill) --> 序列化 --> byte[] ? ?try { ? ? ? ?Jedis jedis = jedisPool.getResource(); ? ? ? ?try { ? ? ? ? ? ?String key = "seckill: " + seckill.getSeckillId(); ? ? ? ? ? ?byte[] bytes = ProtobufIOUtil.toByteArray(seckill, schema, LinkedBuffer.allocate(LinkedBuffer.DEFAULT_BUFFER_SIZE)); ? ? ? ? ? ?//超時緩存 ? ? ? ? ? ?int timeout = 60 * 60; ?//緩存一小時,單位為秒 ? ? ? ? ? ?String result = jedis.setex(key.getBytes(), timeout, bytes); ? ? ? ? ? ?return result; ? ? ? ?} finally { ? ? ? ? ? ?jedis.close(); ? ? ? ?} ? ?} catch (Exception e) { ? ? ? ?logger.error(e.getMessage(), e); ? ?} ? ?return null;}
查看完整描述

目前暫無任何回答

  • 0 回答
  • 1 關注
  • 2219 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號