/** Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 6 - 2 0 1 9 Ġ äºº äºº å¼ĢæºĲ ĠAll Ġrights Ġreserved . Ċ Ġ* Ċ Ġ* Ġhttps :// www . ren ren . io Ċ Ġ* Ċ Ġ* Ġ çīĪ æĿĥ æīĢæľī ï¼Į ä¾ µ æĿĥ å¿ħ ç©¶ ï¼ģ Ċ Ġ*/ Ċ package Ġio . ren ren . common . utils Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . data . redis . core .* Ċ import Ġorg . springframework . stereotype . Component Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ /** Ċ Ġ* ĠRedis å·¥åħ· ç±» Ċ Ġ* Ċ Ġ* Ġ@ author ĠMark Ġsun light cs @ gmail . com Ċ Ġ*/ Ċ @ Component Ċ class ĠRedis Utils Ġ{ ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġval Ġredis Template : ĠRedis Template < String ?, ĠAny ?> ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġval Ġvalue Operations : ĠValue Operations < String ?, ĠString ?> ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġval Ġhash Operations : ĠHash Operations < String ?, ĠString ?, ĠAny ?> ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġval Ġlist Operations : ĠList Operations < String ?, ĠAny ?> ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġval Ġset Operations : ĠSet Operations < String ?, ĠAny ?> ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġprivate Ġval Ġz Set Operations : ĠZ Set Operations < String ?, ĠAny ?> ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġfun Ġset ( key : ĠString ?, Ġvalue : ĠAny ?, Ġexpire : ĠLong Ġ= ĠDEFAULT _ EXPI RE ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvalue Operations ! ![ key !! ] Ġ= ĠtoJson ( value ) !! ĊĠĠĠĠĠĠĠ Ġif Ġ( expire Ġ!= ĠNOT _ EXPI RE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġredis Template !!. expire ( key , Ġexpire , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġ< T > Ġget ( key : ĠString ?, Ġclazz : ĠClass < T >, Ġexpire : ĠLong ): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġvalue Operations ! ![ key !! ] ĊĠĠĠĠĠĠĠ Ġif Ġ( expire Ġ!= ĠNOT _ EXPI RE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġredis Template !!. expire ( key , Ġexpire , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ?. let Ġ{ Ġfrom Json ( it , Ġclazz ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoperator Ġfun Ġ< T > Ġget ( key : ĠString ?, Ġclazz : ĠClass < T >): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget ( key , Ġclazz , ĠNOT _ EXPI RE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Over loads ĊĠĠĠ Ġoperator Ġfun Ġget ( key : ĠString ?, Ġexpire : ĠLong Ġ= ĠNOT _ EXPI RE ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġvalue Operations ! ![ key !! ] ĊĠĠĠĠĠĠĠ Ġif Ġ( expire Ġ!= ĠNOT _ EXPI RE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġredis Template !!. expire ( key , Ġexpire , ĠTimeUnit . SECONDS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( key : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġredis Template !!. delete ( key !! ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠObject è½¬ æĪĲ JSON æķ°æį® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun ĠtoJson (` object `: ĠAny ?): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(` object ` Ġis ĠInt Ġ|| Ġ` object ` Ġis ĠLong Ġ|| Ġ` object ` Ġis ĠFloat Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ` object ` Ġis ĠDouble Ġ|| Ġ` object ` Ġis ĠBoolean Ġ|| Ġ` object ` Ġis ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ` object `. toString () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġgson !!. toJson (` object `) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠJSON æķ°æį® ï¼Į è½¬ æĪĲ Object ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġ< T > Ġfrom Json ( json : ĠString ?, Ġclazz : ĠClass < T >): ĠT ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġgson !!. fromJson ( json , Ġclazz ) ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** Ġ Ġé»ĺè®¤ è¿ĩ æľŁ æĹ¶ éķ¿ ï¼Į åįķä½į ï¼ļ ç§Ĵ Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEFAULT _ EXPI RE Ġ= Ġ 6 0 Ġ* Ġ 6 0 Ġ* Ġ 2 4 . to Long () ĊĊĠĠĠĠĠĠĠ Ġ/** Ġ Ġä¸į è®¾ç½® è¿ĩ æľŁ æĹ¶ éķ¿ Ġ Ġ*/ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT _ EXPI RE : ĠLong Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġgson : ĠGson ? Ġ= ĠGson () ĊĠĠĠ Ġ} Ċ }