import redis class Database: 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) except Exception, exception: print exception 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) print value return value except Exception, exception: print exception if __name__ == ‘__main__‘: db = Database() db.write(‘meituan‘,‘beijing‘,2013,9,1,8000) 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 def batch_write(self): try: r = redis.StrictRedis(host=self.host,port=self.port) r.mset(self.write_pool) except Exception, exception: print exception 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()
参考文章: http://www.jb51.net/article/48212.htm
时间: 2024-11-09 01:53:28