admin
2025-01-15 f84dcf456dbfa318f490d6cf878be5d5d5262718
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
B
˝ÕdÄã@s¤dZddlZddlZddlZddlZddlZddlmZddlm    Z    ej
Z dd„e dƒDƒZ Gdd    „d    ƒZGd
d „d ƒZed kr ed ƒ ¡ZejjdZeeƒdS)u
redis管理器
éN)Úlogger_redis_debug)Útoolc
Cs.g|]&}tjtdtdtd|ddd‘qS)ÚhostÚportÚpwdTé2)rrÚpasswordÚdbÚdecode_responsesZmax_connections)ÚredisÚConnectionPoolÚconfig)Ú.0r    ©rõ2D:\量化低吸\low_suction_hx\db\redis_manager.pyú
<listcomp>sréc@s,eZdZedfdd„Zdd„Zdd„ZdS)    Ú RedisManagerr    cCst||_||_dS)N)Ú pool_cachesÚpoolr    )Úselfr    rrrÚ__init__s
zRedisManager.__init__cCstj|jdS)N)Úconnection_pool)r ÚRedisr)rrrrÚgetRedisszRedisManager.getRediscCs"tjtdtdtd|jddS)NrrrT)rrrr    r
)r rr r    )rrrrÚgetRedisNoPoolszRedisManager.getRedisNoPoolN)Ú__name__Ú
__module__Ú __qualname__r rrrrrrrrsrc@s„eZdZe ¡Zedd„ƒZed:dd„ƒZed;dd„ƒZ    ed<d    d
„ƒZ
ed=d d „ƒZ ed>d d„ƒZ ed?dd„ƒZ ed@dd„ƒZedAdd„ƒZedBdd„ƒZedCdd„ƒZedDdd„ƒZedEdd„ƒZedFdd„ƒZedGdd „ƒZedHd!d"„ƒZedId#d$„ƒZedJd%d&„ƒZedKd'd(„ƒZedLd)d*„ƒZedMd+d,„ƒZedNd-d.„ƒZedOd/d0„ƒZed1d2„ƒZed3d4„ƒZed5d6„ƒZ ed7d8„ƒZ!d9S)PÚ
RedisUtilsc Cs8t ¡}z|ƒSt d|tt ¡|ddƒ|¡XdS)Nz    {}({}):{}ièé)ÚtimerÚinfoÚround)ÚclsÚ method_nameÚkeyZ lamada_methodZ_RedisUtils__start_timerrrÚexec%szRedisUtils.execTcs| dˆ‡‡fdd„¡S)NÚgetcs
ˆ ˆ¡S)N)r(r)r&Úredis_rrÚ<lambda>/óz RedisUtils.get.<locals>.<lambda>)r')r$r)r&Ú    auto_freer)r&r)rr(-szRedisUtils.getcs| dˆ‡‡fdd„¡S)NÚscardcs
ˆ ˆ¡S)N)r-r)r&r)rrr*3r+z"RedisUtils.scard.<locals>.<lambda>)r')r$r)r&r,r)r&r)rr-1szRedisUtils.scardFcs| dˆ‡‡fdd„¡S)NÚdeletecs
ˆ ˆ¡S)N)r.r)r&r)rrr*7r+z#RedisUtils.delete.<locals>.<lambda>)r')r$r)r&r,Ú_asyncr)r&r)rr.5szRedisUtils.deletecCs | |d|¡t dd|¡dS)Nr.zdelete_async({}):{}r)Úadd_async_taskrr")r$r    r&r,rrrÚ delete_async9szRedisUtils.delete_asynccs| dˆ‡‡fdd„¡S)NÚkeyscs
ˆ ˆ¡S)N)r2r)r&r)rrr*@r+z!RedisUtils.keys.<locals>.<lambda>)r')r$r)r&r,r)r&r)rr2>szRedisUtils.keyscs| dˆ‡‡‡fdd„¡S)NÚsetcs ˆ ˆˆ¡S)N)r3r)r&r)Úvalrrr*Dr+z RedisUtils.set.<locals>.<lambda>)r')r$r)r&r4r,r)r&r)r4rr3BszRedisUtils.setcs| dˆ‡‡‡‡fdd„¡S)NÚsetexcsˆ ˆˆˆ¡S)N)r5r)Úexpirer&r)r4rrr*Hr+z"RedisUtils.setex.<locals>.<lambda>)r')r$r)r&r6r4r,r/r)r6r&r)r4rr5FszRedisUtils.setexcCs&| |d|||f¡t dd|¡dS)Nr5zsetex_async({}):{}r)r0rr")r$r    r&r6r4r,rrrÚ setex_asyncJszRedisUtils.setex_asynccs| dˆ‡‡‡fdd„¡S)NÚsetnxcs ˆ ˆˆ¡S)N)r8r)r&r)r4rrr*Qr+z"RedisUtils.setnx.<locals>.<lambda>)r')r$r)r&r4r,r)r&r)r4rr8OszRedisUtils.setnxcs| dˆ‡‡‡fdd„¡S)Nr6cs ˆ ˆˆ¡S)N)r6r)r6r&r)rrr*Ur+z#RedisUtils.expire.<locals>.<lambda>)r')r$r)r&r6r,r)r6r&r)rr6SszRedisUtils.expirecCs$| |d||f¡t dd|¡dS)Nr6zexpire_async({}):{}r)r0rr")r$r    r&r6r,rrrÚ expire_asyncWszRedisUtils.expire_asynccs| dˆ‡‡‡fdd„¡S)NÚsaddcs ˆ ˆˆ¡S)N)r:r)r&r)r4rrr*^r+z!RedisUtils.sadd.<locals>.<lambda>)r')r$r)r&r4r,r)r&r)r4rr:\szRedisUtils.saddcCs$| |d||f¡t dd|¡dS)Nr:zsadd_async({}):{}r)r0rr")r$r    r&r4r,rrrÚ
sadd_async`szRedisUtils.sadd_asynccs| dˆ‡‡‡fdd„¡S)NÚ    sismembercs ˆ ˆˆ¡S)N)r<r)r&r)r4rrr*gr+z&RedisUtils.sismember.<locals>.<lambda>)r')r$r)r&r4r,r)r&r)r4rr<eszRedisUtils.sismembercs| dˆ‡‡fdd„¡S)NÚsmemberscs
ˆ ˆ¡S)N)r=r)r&r)rrr*kr+z%RedisUtils.smembers.<locals>.<lambda>)r')r$r)r&r,r)r&r)rr=iszRedisUtils.smemberscs| dˆ‡‡‡fdd„¡S)NÚsremcs ˆ ˆˆ¡S)N)r>r)r&r)r4rrr*or+z!RedisUtils.srem.<locals>.<lambda>)r')r$r)r&r4r,r)r&r)r4rr>mszRedisUtils.sremcCs$| |d||f¡t dd|¡dS)Nr>zsrem_async({}):{}r)r0rr")r$r    r&r4r,rrrÚ
srem_asyncqszRedisUtils.srem_asynccs| dˆ‡‡‡fdd„¡S)NÚincrbycs ˆ ˆˆ¡S)N)r@r)r&Únumr)rrr*xr+z#RedisUtils.incrby.<locals>.<lambda>)r')r$r)r&rAr,r/r)r&rAr)rr@vszRedisUtils.incrbycCs$| |d||f¡t dd|¡dS)Nr@zincrby_async({}):{}r)r0rr")r$r    r&rAr,rrrÚ incrby_asynczszRedisUtils.incrby_asynccs| dˆ‡‡‡fdd„¡S)NÚlpushcs ˆ ˆˆ¡S)N)rCr)r&r)r4rrr*r+z"RedisUtils.lpush.<locals>.<lambda>)r')r$r)r&r4r,r)r&r)r4rrCszRedisUtils.lpushcs| dˆ‡‡fdd„¡S)NÚlpopcs
ˆ ˆ¡S)N)rDr)r&r)rrr*…r+z!RedisUtils.lpop.<locals>.<lambda>)r')r$r)r&r,r)r&r)rrDƒszRedisUtils.lpopcs| dˆ‡‡‡fdd„¡S)NÚrpushcs ˆ ˆˆ¡S)N)rEr)r&r)r4rrr*‰r+z"RedisUtils.rpush.<locals>.<lambda>)r')r$r)r&r4r,r)r&r)r4rrE‡szRedisUtils.rpushcCsdS)Nr)r$r)rrrÚrealse‹szRedisUtils.realsecCs|j |||f¡dS)N)Ú_RedisUtils__async_task_queueÚ
put_nowait)r$r    ÚmethodÚargsrrrr0szRedisUtils.add_async_taskcCs
|j ¡S)N)rGÚqsize)r$rrrÚget_async_task_count“szRedisUtils.get_async_task_countc    
Cs–xy^|j ¡}|r^|d}|d}|d}t|ƒ ¡}t||ƒ}t|ƒtkrV||Ž}n||ƒ}Wqtk
rŒ}zt     |¡Wdd}~XYqXqWdS)Nréé)
rGr(rrÚgetattrÚtypeÚtupleÚ    ExceptionÚloggingÚ    exception)    r$Údatar    r%rJZ_redisrIÚresultÚe1rrrÚrun_loop˜s
 
 
 
zRedisUtils.run_loopN)T)T)TF)T)T)T)TF)T)T)T)T)T)T)T)T)T)T)TF)T)T)T)T)"rrrÚqueueÚQueuerGÚ classmethodr'r(r-r.r1r2r3r5r7r8r6r9r:r;r<r=r>r?r@rBrCrDrErFr0rLrXrrrrr"sd                          rÚ__main__rMr    )Ú__doc__rSrYr!r ÚconstantÚlog_module.logrÚutilsrÚ REDIS_CONFIGr ÚrangerrrrrrZconnection_kwargsr    ÚprintrrrrÚ<module>s"