2016-11-23 72 views
1


我 「java.lang.ClassCastException:java.lang.Long中不能轉換爲[B」,同時運行此代碼:Jedis java.lang.Long中不能轉換爲[B

JedisPoolConfig config = new JedisPoolConfig(); 
config.setMaxIdle(10); 
config.setMinIdle(1); 
config.setMaxWaitMillis(30000); 
JedisPool jedisPool = new JedisPool(config, "localhost", 6379); 

Jedis jedis = null; 
jedis = jedisPool.getResource(); 

String msisdn = "3331122333"; 
Long balance = new Long(1000); 
int balanceValidity = 30; 

Transaction t = jedis.multi(); 
t.watch(msisdn); 
t.set(msisdn, balance.toString()); 
t.expire(msisdn, balanceValidity); 
t.exec(); 

逝去的工作正常運行此代碼:

Jedis jedis = null; 
    try { 
     jedis = jedisPool.getResource(); 

     jedis.watch(msisdn); 
     jedis.set(msisdn, balance.toString());  
     jedis.expire(msisdn, balanceValidity); 
     jedis.publish("myChannel", msisdn + " " + balance.toString()); 

    } finally { 
     if (jedis != null) 
      jedis.close(); 
    } 

這些用過的vesions:

  • 的Redis 3.2.4
  • Jedis客戶端2.9.0
  • JDK 1.6

回答

1

Jedis不是線程安全的。

當您進行一些操作時,每次從池中獲取jedis實例。並在此之後關閉jedis實例,以便它回到池中

相關問題