Python读写Redis数据库

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

 

你可能感兴趣的:(python)