数据库分为两类:1.关系型数据库: MySQL,Oracle,sql server,db2,sqlite 需要sql语句 数据存在磁盘上2.非关系型数据库:mongodb, redis 没有表结构 没有sql语句 使用get(‘k‘),set(‘xx‘) 说明:1.redis数据全部存在内存里面 2.redis本身性能是非常好的,每秒支持30w次的读写 import redisr=redis.Redis(host=‘xx.xx.xx.xx‘,password=‘aaaaa‘,db=0,port=6379) #连接redis数据库,host是数据库ip#增删改查,针对string类型r.set(‘zhangsan‘,‘帅!‘) #数据库里面新增一个值,‘zhangsan‘是key,‘帅‘是value#修改也是setr.delete(‘shangsan‘) #删除r.setex(‘lisi_600‘,‘哈哈哈‘,600) #设置key的失效时间,单位秒r.get(‘lisi‘).decode() #获取的值是二进制,要转换成字符串lisi=r.get(‘lisi‘)print(lisi) #打印出来的是二进制数据 r.keys(‘qianwu‘) #获取到所有的keyr.set(‘天蝎座:mpp‘,‘hahaha‘) #key是嵌套目录r.get(‘天蝎座:mpp‘) ---------------------------------------------#操作哈希类型数据 hash 嵌套字典for k in r.keys(): #删除所有的key r.delete(k) r.hset(‘stu_info‘,‘zuobian‘,‘1.8cm‘) #新增hash类型数据r.hset(‘stu_info‘,‘zhangsan‘,‘浪‘)r.type(‘stu_info‘) #查看key是什么类型r.hget(‘stu_info‘,‘zhangsan‘).decode() #指定大key和和小key获取对应的数据 stu_info=r.hgetall(‘stu_info‘) #获取里面所有的k和vnew_stu_info={}for k,v in stu_info.items(): #从redis获取的k,v放入字典中 new_stu_info[k.decode()]=v.decode()print(new_stu_info) r.hdel(‘stu_info‘,‘zhangsan‘) #删除指定keyr.delete(‘stu_info‘) #删除整个keyr.ttl(‘lisi_600‘) #获取key的失效时间r.expire(‘aaa‘,100) #对一个key设置失效时间,哈希,string都可用 ======= 小练习 =========
1.连接数据库mysql,游标类型要用pymysql.cursors.DictCour2.查到数据库里所有数据 [ {"id":1,"passwd":"59787dd4f94034a6145275e48ad09447","username":"zhangsan","is_admin":1}]3.循环这个list,取到username,把username当做key4.把这个小字典转成json,存到redis里 import pymysql,json,redis r=redis.Redis(host=‘yy.yy.yy.yy‘,password=‘123456‘,db=0,port=6379) #连接redis数据库coon=pymysql.connect(host=‘xx.xx.xx.xx‘,user=‘aaa‘,passwd=‘12345678‘,db=‘aaa‘,charset=‘utf8‘) #连接pymysqlcur=coon.cursor(pymysql.cursors.DictCursor) #游标类型用字典类型cur.execute(‘select * from my_user;‘) #执行查询语句all_data=cur.fetchall() #获取所有结果for data in all_data: k=data.get(‘username‘) #获取用户名 r.hset(‘stu_info_tt‘,k,json.dumps(data)) #写入用户名和数据,用json类型cur.close()coon.close()
原文地址:https://www.cnblogs.com/bainbian1234/p/9190631.html
时间: 2024-10-09 06:40:38