import redis
クラス データベース:
def __init__(self):
self.host = 'localhost'
self.port = 6379
def write(self,website,city, year,month,day, deal_number):
try:
key = '_'.join([website,city,str(year),str(month),str(day)])
val = deal_number
r = redis.StrictRedis(host=self.host,port=self.port)
r.set(key,val)
例外を除く、例外:
例外を出力
def read(self,website,city,year,month,day):
try:
key = '_'.join([website,city,str(year),str(month), str(day)])
r = redis.StrictRedis(host=self.host,port=self.port)
value = r.get(key)
出力値
Exception 、例外を除く:
印刷例外
db.read( 'meituan'、 'beijing'、2013,9,1)
上記の操作は、最初にデータを書いてから読み取ります書き込みまたは読み取りの場合は、データが多すぎるため、より効率的なバッチ処理を使用することをお勧めします。
コードをコピー
コードは次のとおりです:
import redis import datetime class Database: def __init__ (self):
self.host = 'localhost'
self.port = 6379
self.write_pool = {}
def add_write(self,website,city,year ,month, day,deal_number):
key = '_'.join([website,city,str(year),str(month),str(day)])
val = deal_number
self .write_pool[ key] = val
defbatch_write(self):
try:
r.mset(self .write_pool)
例外を除く、例外:
例外を出力
def add_data():
beg = datetime.datetime.now()
db = Database()
for i in range(1,10000):
db。 add_write('meituan','beijing',2013,i,1,i)
db.batch_write()
end = datetime .datetime.now()
print end-beg
if __name__ == '__main__':
add_data()