Python reading and writing Redis database operation example

  • 2020-04-02 13:31:54
  • OfStack

How do you manipulate Redis using Python? The following example illustrates reading and writing to the Redis database in Python.
For example, we insert a piece of data as follows:
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)  

The above operation is to write a piece of data first, then read, if write or read too much data, then we had better use batch processing, which will be more efficient.
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()  

Related articles: