一、前提
在 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)