Redis数据库(初级)

Redis是一个开源的非关系型数据库,它采用C语言编写,是一个key-value存储系统,它存储的value类型很多,包括string(字符串),list(链表),set(集合),zset(有序集合),hash(哈希)。


比如,我们插入一条数据,如下:

[python]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. import redis  
  2.   
  3. class Database:  
  4.     def __init__(self):  
  5.         self.host = 'localhost'  
  6.         self.port = 6379  
  7.   
  8.     def write(self,website,city,year,month,day,deal_number):  
  9.         try:  
  10.             key = '_'.join([website,city,str(year),str(month),str(day)])  
  11.             val = deal_number  
  12.             r = redis.StrictRedis(host=self.host,port=self.port)  
  13.             r.set(key,val)  
  14.         except Exception, exception:  
  15.             print exception  
  16.   
  17.     def read(self,website,city,year,month,day):  
  18.         try:  
  19.             key = '_'.join([website,city,str(year),str(month),str(day)])  
  20.             r = redis.StrictRedis(host=self.host,port=self.port)  
  21.             value = r.get(key)  
  22.             print value  
  23.             return value  
  24.         except Exception, exception:  
  25.             print exception  
  26.   
  27. if __name__ == '__main__':  
  28.     db = Database()  
  29.     db.write('meituan','beijing',2013,9,1,8000)  
  30.     db.read('meituan','beijing',2013,9,1)  


上面操作是先写入一条数据,然后再读取,如果写入或者读取数据太多,那么我们最好用批处理,这样效率会更高。

[python]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. import redis  
  2. import datetime  
  3.   
  4. class Database:  
  5.     def __init__(self):  
  6.         self.host = 'localhost'  
  7.         self.port = 6379  
  8.         self.write_pool = {}  
  9.   
  10.     def add_write(self,website,city,year,month,day,deal_number):  
  11.         key = '_'.join([website,city,str(year),str(month),str(day)])  
  12.         val = deal_number  
  13.         self.write_pool[key] = val  
  14.   
  15.     def batch_write(self):  
  16.         try:  
  17.             r = redis.StrictRedis(host=self.host,port=self.port)  
  18.             r.mset(self.write_pool)  
  19.         except Exception, exception:  
  20.             print exception  
  21.               
  22.   
  23. def add_data():  
  24.     beg = datetime.datetime.now()  
  25.     db = Database()  
  26.     for i in range(1,10000):  
  27.         db.add_write('meituan','beijing',2013,i,1,i)  
  28.     db.batch_write()  
  29.     end = datetime.datetime.now()  
  30.     print end-beg  
  31.               
  32. if __name__ == '__main__':  
  33.     add_data()  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值