一、前提
在 cmd 中已执行 pip install redis 安装完成 数据库(redis)模块
二、数据库相关
1. 数据库分为关系型数据库、非关系型数据库
关系型数据库:mysql、oracle、sql server、sqlite
非关系型数据库(Nosql),以键值对存储(key-value):mongdb、redis
2. Redis操作
1 import redis 2 3 r = redis.Redis(host="*.*.*.*", 4 password="**", 5 port=6379, 6 db=0, 7 decode_responses=True)# 解决获取的值类型是bytes字节问题,自动转换为字符串 8 9 #str 10 r.expire("tqz_stu",100) #对key设置过期时间 11 r.set("CHJ_Test","852c951d",100) #新增和修改 12 print(r.get("CHJ_Test")) #获取数据 13 r.delete("CHJ_Test") #删除数据 14 15 #二进制,字节型 16 result = r.get("CHJ_Test") 17 result.decode()#若连接redis时已自动转换字符串则不需要执行.decode(),否则需要执行.decode() 转换为字符串 18 r.exists("CHJ_Test") #它返回的是0和1,0代表不存在,1代表存在 19 r.type("CHJ_Test") #查key的类型 20 21 #hash 哈希类型 k - v 22 23 r.hset("tqz_stu","wsc",'{"id":1,"username":"xxx"}') #新增和修改 24 r.hset("tqz_stu","chj",'{"id":2,"username":"chj"}')#新增和修改 25 r.hset("tqz_stu","yhl",'{"id":3,"username":"yhl"}')#新增和修改 26 r.set("tqz:wsc","abc") 27 r.set("tqz:chj","abc1") 28 print(r.hget("tqz_stu","wsc")) 29 d = {} 30 for k,v in r.hgetall("tqz_stu").items(): 31 k = k.decode() 32 v = v.decode() 33 d[k] = v 34 print(d) 35 print(r.keys()) #获取当前数据库里面的所有key 36 print(r.keys("*stu*")) 37 r.hdel("tqz_stu","wsc")#删除一个或多个哈希表字段 38 r.delete("tqz_stu") 39 r.flushdb() #只清空当前数据库的数据 40 r.flushall() #清空所有数据库里面的所有数据
3. redis迁移
1 import redis 2 r = redis.Redis(host="*.*.*.*", 3 password="*", 4 port=6379, 5 db=0, 6 decode_responses=True)#0-15 7 8 r2 = redis.Redis(host="*", 9 password="*", 10 port=6379, 11 db=2, 12 decode_responses=True)#0-15 13 14 #1、获取所有的key 15 #2、判断key的类型 16 #3、根据key的类型来使用set或者hset 17 18 for key in r.keys(): 19 if r.type(key) == "string": 20 value = r.get(key) 21 r2.set(key,value) 22 elif r.type(key) == "hash": 23 hash_all = r.hgetall(key) 24 for k,v in hash_all.items(): #循环hash类型里面所有的k-v 25 r2.hset(key,k,v)