遍历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/