当前位置 博文首页 > Python读写Redis数据库操作示例

    Python读写Redis数据库操作示例

    作者:admin 时间:2021-07-03 18:48

    使用Python如何操作Redis呢?下面用实例来说明用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() 
    jsjbwy
    下一篇:没有了