首页 > 编程 > Python > 正文

Python实现遍历数据库并获取key的值

2019-11-25 17:27:48
字体:
来源:转载
供稿:网友

遍历Redis数据库中有以格式为PREFIX_*的按照key-value方式存储的key,并打印其值.

遍历使用SCAN,因为KEYS PREFIX_*可能会造成Redis长时间阻塞。
查询使用pipeline减少交互,提高效率。

import redisimport hiredispool = redis.ConnectionPool(host='127.0.0.1', port=6379, db=0)r = redis.Redis(connection_pool=pool)pipe = r.pipeline()pipe_size = 100000len = 0key_list = []for key in r.scan_iter(match='PREFIX_*', count=100000):key_list.append(key)pipe.get(key) if len < pipe_size: len += 1else: 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

附上其他网页的代码,参考下吧

# filename itertaorfilefolder import os import os.pathfilePath = 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)

以上所述就是本文的全部内容了,希望大家能够喜欢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表