Python實現遍歷資料庫並獲取key的值
阿新 • • 發佈:2018-11-15
遍歷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/