1. 程式人生 > >Python實現遍歷資料庫並獲取key的值

Python實現遍歷資料庫並獲取key的值

遍歷Redis資料庫中有以格式為PREFIX_*的按照key-value方式儲存的key,並列印其值.

 

遍歷使用SCAN,因為KEYS PREFIX_*可能會造成Redis長時間阻塞。
查詢使用pipeline減少互動,提高效率。

 

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 import redis import hiredis   pool = redis.ConnectionPool(host = '127.0.0.1' , port = 6379 , db =
0 ) r = redis.Redis(connection_pool = pool)   pipe = r.pipeline() pipe_size = 100000   len
= 0 key_list = [] for key in r.scan_iter(match = 'PREFIX_*' , count = 100000 ): key_list.append(key) pipe.get(key)   if len < pipe_size:   len + = 1 else :   for (k, v) in zip (key_list, pipe.execute()):   print k, v   len = 0   key_list = []   for (k, v) in zip (key_list, pipe.execute()):   print k, v

 

附上其他網頁的程式碼,參考下吧

 

?
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 # filename itertaorfilefolder import os import os.path   filePath = raw_input ( 'Enter filepath : ' )   #遍歷資料夾 #三個引數:分別返回1.父目錄 2.所有資料夾名字(不含路徑) 3.所有檔名字 for parent ,dirnames , filenames in os.walk(filePath):    #輸出資料夾資訊    for dirname in dirnames:      print 'parent is :' + parent      print 'dirname is ' + dirname    #輸出檔案資訊    for filename in filenames :      print 'parent is :' + parent      print 'filename is :' + filename      #輸出檔案路徑資訊      currentPath = os.path.join(parent,filename)      print 'the fulll name of the file is :' + currentPath      filesize = os.path.getsize(currentPath) / 1024 / 1024      print 'the file size is : %.3f MB' % (filesize)      #刪除大於50m的檔案      if filesize > 50 :        delete = raw_input ( ' are you sure to delete ?' )        if delete = = 'yes' :          os.remove(currentPath)

 

以上所述就是本文的全部內容了,希望大家能夠喜歡。

推薦網站 http://cz.qwangxiao.com/