python学习笔记14:redis操作

Redis是一个key-value存储系统是一种非关系型数据库的数据库。支持字符串(strings)、散列(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。

一、安装第三方模块redis

安装命令为:

pip install redis

二、使用实例

 1 # 字符串类型
 2 import redis
 3 r = redis.Redis(host="xxx.xx.x.xx",port=6379,password="xxxxxxx",db=15)  #不指定db,默认是db0
 4 
 5 r.set("xh_session","23456",60*60*2)  #Key,Value,失效时间:不指定失效时间,默认是永久失效(TTL:-1)
 6 r.set("xh_session","11111")  #修改
 7 print(r.get("xh_session"))  #取值
 8 r.delete(“xh_session”)  #删除
 9 
10 r.set("xt_session","33333")
11 session = r.get("xt_session")  #字节类型
12 print(session)
13 new_session = session.decode()  #字节类型转成字符串类型
14 print(new_session)
15 
16 
17 # 哈希类型:
18 import redis
19 r = redis.Redis(host="xxx.xx.x.xx",port=6379,password="xxxxxxx",decode_responses=True)  #decode_responses=True把获取的bytes转成字符串
20 r.hset("xt_student","xh","1111")
21 r.hset("xt_student","xb","2222")
22 r.hset("xt_student","xx","3333")
23 # print(r.hget("xt_student","xx").decode())  #如果连接redis时没有设置decode_responses=True,需要手动将获取的值转成字符串
24 print(r.hget("xt_student","xx"))
25 
26 d = {"a":1,"b":2,"c":3}
27 r.hmset("xt_session",d)  #hash类型可以传字典
28 
29 print(r.hgetall("xt_student"))  #获取所有数据
30 r.hdel("xt_student","xx")  #删除
31 
32 
33 print(r.keys())  #获取所有的key
34 print(r.keys('*session*'))  #*代表模糊查询
35 
36 print(r.exists("xt_student"))  #判断key是否存在
37 print(r.type("xt_student"))  #返回key的类型
38 r.expire("xt_student",10)  #指定key的过期时间,单位是秒
39 r.flushall()  #清空所有数据库里面的key
40 r.flushdb()  #清空当前数据库里面的key

三.小练习-迁移数据

 1 # 迁移redis
 2 # 1、连上2个redis  r1 r2
 3 # 2、从r1里面获取所有的key
 4 # 3、判断key的类型,是hash还是string
 5 # 4、从r1 get数据,set r2
 6 
 7 import redis
 8 r1 = redis.Redis(host="118.24.3.40",port=6397,password="HK139bc&*",decode_responses=True)
 9 r2 = redis.Redis(host="118.24.3.40",port=6379,password="HK139bc&*",decode_responses=True,db=15)
10 
11 for k in r1.keys():
12     key_type = r1.type(k)
13     if key_type == 'string':
14         value = r1.get(k)
15         r2.set(k,value)
16     elif key_type == 'hash':
17         value = r1.hgetall(k)
18         r2.hmset(k,value)  #传字典
19     else:
20         pass

 打断点调试

 

posted @ 2020-05-29 21:28  张小歪  阅读(138)  评论(0编辑  收藏  举报