Python读写Redis数据库操作示例

671次阅读  |  发布于5年以前

使用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()

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8