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
打断点调试