2016-11-23 4 views
1


Ich habe "java.lang.ClassCastException: java.lang.Long nicht auf [B gegossen werden", während dieser Code ausgeführt wird:Jedis java.lang.Long nicht auf [B gegossen werden

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(); 

every~~POS=TRUNC Werke läuft gut diesen Code:

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(); 
    } 

Diese verwendeten vesions:

  • Redis 3.2.4
  • Jedis Client 2.9.0
  • JDK 1,6

Antwort

1

Jedis ist nicht sicher fädeln.

Holen Sie die Jedis-Instanz jedes Mal aus dem Pool, wenn Sie eine Operation ausführen. und danach schließen wir die Jedis-Instanz, so dass sie zurück in den Pool geht

Verwandte Themen