Python查詢Redis中的Key


今日,大哥讓我查下項目的在線用戶量,聽到這個消息頓時懵逼了,在線用戶量,這個該怎么查????想到項目中的登陸用戶緩存信息Token都存放在Redis中,是不是可以根據Redis中Token的個數大致估出來項目的在線用戶量,用戶登錄是有有效期的(七小時有效、三天免登陸等),因此,我們可以根據Redis中Key值的有效期來大致歸納用戶的時段在線量,話不多說,上代碼:

 1 # 添加redis模塊引用
 2 import redis
 3 
 4 
 5 def search_key():
 6     
 7     # 創建Redis連接池
 8     # host:連接主機
 9     # port:端口號,默認6379
10     # db:數據庫,默認0-15
11     pool = redis.ConnectionPool(host='localhost', port=6379, db=14)
12    
13     # 從連接池中獲取一個連接
14     r = redis.StrictRedis(connection_pool=pool)
15 
16     # 獲取redis中keys的個數,我在redis的這個庫里只存放用戶的登陸token信息,不存放別的信息,不需要篩選
17     # 如果redis庫中還存放着其他信息,需要在此篩選,
18     keys = r.keys()
19     # print(keys)
20     print('Token的總個數:', len(keys))
21     twoHours = 0
22     threeHours = 0
23     fiveHours = 0
24     for i in range(len(keys)):
25         key = keys[i]
26         remainTime = r.ttl(key)
27         if remainTime > 7200:
28             twoHours = twoHours + 1
29         if remainTime > 10800:
30             threeHours = threeHours + 1
31         if remainTime > 18000:
32             fiveHours = fiveHours + 1
33 
34         print('超過兩個小時有效:' + str(twoHours))
35         print('超過三個小時有效:' + str(threeHours))
36         print('超過五個小時有效:' + str(fiveHours))
37 
38 
39 if __name__ == '__main__':
40     search_key()

 最后的輸出是這樣的:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM