遍歷Redis數(shù)據(jù)庫(kù)中有以格式為PREFIX_*的按照key-value方式存儲(chǔ)的key,并打印其值.
遍歷使用SCAN,因?yàn)镵EYS PREFIX_*可能會(huì)造成Redis長(zhǎng)時(shí)間阻塞。
查詢使用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 |
附上其他網(wǎng)頁(yè)的代碼,參考下吧
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 : ' ) #遍歷文件夾 #三個(gè)參數(shù):分別返回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) |
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。