Applications must be self-recovering after Redis restarts, network Flash-off, and normal recovery, as illustrated by the Java language Jedis client as an example:
1. As a publisher
The Jedis object cannot be used as a singleton, and the Jedis object cannot be self-recoverable after the network flash. You should fetch the Jedis object from Jedispool each time you publish the message, and then call the Set method.
2. As Subscribers
When the Psubscribe () method is no longer blocked and throws an exception after the network flash, you can use the while loop to handle the exception inside the loop, with the following code:
while(true) {Jedis Redis= This. Jedispool.getresource (); Try{redis.psubscribe ( This, Channelarray); }Catch(jedisconnectionexception e) {Logger.warn ("Exception:", E); Logger.warn ("Exit Redis Psubscribe, retry after 1 second"); }Catch(Exception e) {logger.error ("Exception:", E); } Try{Thread.Sleep (1000); }Catch(Exception unused) {}Try{ if(Redis! =NULL) {redis.close (); } }Catch(Exception unused) {}}
Considerations for a Redis wire-break re-connect encoding