package Ġpro . d arc . cake . module . distribute čĊč Ċ import Ġorg . redis son . Redis son č Ċ import Ġorg . redis son . api . Redis son Client č Ċ import Ġorg . redis son . codec . Serialization Codec č Ċ import Ġpro . d arc . cake . core . inject . Life Cycle č Ċ import Ġpro . d arc . cake . core . inject . Life Inject č Ċ import Ġpro . d arc . cake . module . extensions . Config č Ċ import Ġpro . d arc . cake . utils . Priority čĊč Ċ val Ġredis son : ĠRedis son Client Ġ= ĠManager . getClient () čĊč Ċ object ĠManager Ġ{ čĊĠĠĠ Ġlateinit Ġvar Ġredis son Client : ĠRedis son Client čĊčĊĠĠĠ Ġ@ Life Inject ([ Life Cycle . Cake Reload , ĠLife Cycle . Cake Enable ], ĠPriority . MID ) čĊĠĠĠ Ġ@ Jvm Static čĊĠĠĠ Ġfun Ġinit () Ġ{ čĊĠĠĠĠĠĠĠ Ġredis son Client Ġ= Ġcreate From Config () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun ĠgetClient () Ġ= Ġredis son Client čĊčĊĠĠĠ Ġprivate Ġfun Ġcreate From Config (): ĠRedis son Client Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġconfig Ġ= Ġorg . redis son . config . Config () čĊĠĠĠĠĠĠĠ Ġval Ġnodes Ġ= ĠConfig . db . getString List (" redis . nodes ") čĊĠĠĠĠĠĠĠ Ġval Ġcommand Timeout Ġ= ĠConfig . db . getInt (" redis . command Ġtimeout ") čĊĠĠĠĠĠĠĠ Ġval Ġconnect Timeout Ġ= ĠConfig . db . getInt (" redis . connect Ġtimeout ") čĊĠĠĠĠĠĠĠ Ġval Ġretry Time Ġ= ĠConfig . db . getInt (" redis . retry Ġtime ") čĊĠĠĠĠĠĠĠ Ġval Ġretry Interval Ġ= ĠConfig . db . getInt (" redis . retry Ġinterval ") čĊĠĠĠĠĠĠĠ Ġval Ġdatabase Ġ= ĠConfig . db . getInt (" redis . database ") čĊĠĠĠĠĠĠĠ Ġconfig . codec Ġ= ĠSerialization Codec () čĊĠĠĠĠĠĠĠ Ġwhen ( Config . db . getString (" redis . mode ")) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" cluster " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . use Cluster Servers () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Scan Interval ( 3 0 0 0 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Node Address (* nodes . to Typed Array ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Connect Timeout ( connect Timeout ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTimeout ( command Timeout ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Retry Attempts ( retry Time ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Retry Interval ( retry Interval ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" master _ slave " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . use Master Slave Servers () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Master Address ( nodes . first ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Database ( database ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Slave Address (* nodes . sub List ( 1 , Ġnodes . size ). to Typed Array ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Connect Timeout ( connect Timeout ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTimeout ( command Timeout ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Retry Attempts ( retry Time ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Retry Interval ( retry Interval ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . use Single Server () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Address ( nodes . first ()) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Database ( database ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Connect Timeout ( connect Timeout ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTimeout ( command Timeout ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Retry Attempts ( retry Time ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Retry Interval ( retry Interval ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn ĠRedis son . create ( config ) čĊĠĠĠ Ġ} č Ċ } čĊ