数据库:
1. 关系型数据库
- 表结构
2. 非关系型数据库 nosql (k - v 速度快),常用的时以下三种:
- memcache 存在内存里
- redis 存在内存里
- mangodb 数据还是存在磁盘上
Redis里的数据类型有String 和hash类型,下面主要是对Redis 的一些操作。
一、String类型
r = redis.Redis(host=‘localhost‘,port=6379,db=3) r.set(‘nancy2‘,‘201801211505‘) #set数据 print(r.get(‘nancy‘)) # b‘201801211505‘ print(r.get(‘unexsitkey‘)) #->None print(r.get(‘nancy1‘).decode()) #redis 里面取出来的数据都是bytes类型,所有要用decode()方法转成字符串 ->201801211505 r.delete(‘nancy‘) #删除一个 r.setex(‘nancy_session‘,‘aaabb66‘,‘20‘) #可以指定key的失效时间,最后一个单位,单位是秒 r.set(‘redis:nancy‘,‘python000‘) r.set(‘redis:nancy1‘,‘redis00123‘) r.set(‘redis1:kate‘,‘redis11‘) print(r.keys())#byte 类型,list 所有的key print(r.keys(‘redis*‘)) #以txz开头的key,byte 类型,-> [b‘redis:nancy1‘, b‘redis:nancy‘, b‘redis1:kate‘] print(r.type(‘redis:nancy‘)) #-> b‘string‘
注意: set get delete setex 都是针对redis里的string类型
二、hash类型
r.hset(‘sessions‘,‘lily‘,‘167890‘) r.hset(‘sessions‘,‘kate‘,‘34901‘) value = r.hget(‘sessions‘,‘nancy‘) #获取数据 print(value) value1 = r.hget(‘session‘,‘unexsit‘)#不存在返回None print(value1) redis_data = r.hgetall(‘sessions‘) #获取hash类型里所有的数据,数据类型是字典 all_date = {} for k,v in redis_data.items(): k = k.decode() v = v.decode() all_date[k] = v print(redis_data)#byte 型的字典,{b‘kate‘: b‘34901‘, b‘lily‘: b‘167890‘} print(r.type(‘sessions‘)) #获取key的类型 -> b‘hash‘