python 操作redis

redis是一个非关系型数据库。

数据库包括非关系型数据库和关系型数据库。
1、关系型数据库:mysql/oracle/sql server/db2/sqlite 数据是存在磁盘上的


2、非关系型数据库:
mongodb/redis 没有表结构,没有sql语句,没什么字段。速度比关系型数据库快,redis数据是存在内存上的,redis本身性能非常,每秒支持30万次读写。缺点是没有办法持久化(重启redis可以备份数据到磁盘里面,启动的时候再次读取磁盘的数据到内存,这种方法可以实现持久化)

以下是python操作redis的一些基本方法

import redis

r=redis.Redis(host='xx.xx.xx.xx',password='HK139bc&*',db=1,port=6379) #默认端口号如果不修改就是6379,db指定用哪个数据库
#增删改查,这些操作都是针对string类型的
r.set('niuh','') #数据库里面新增一个值,修改也是set
r.set('niuh','niuniuniu') #修改niuh的value为niuniuniu
r.delete('niuhany') #删除
r.setex('python_123','哈哈哈',20)#设置key的失效时间,最后的参数是秒
hwt=r.get('niuh')
print(hwt.decode())  #\xe5\xb8\x85  二进制转为字符串decode,字符串转二进制encode
s='哈哈'
print(s.encode())  #字符串转二进制encode
print(r.keys('*xxx*'))#获取到所有的key
print(r.get('sdf'))
r.set('天蝎座:mpp','呵呵呵') #key有冒号,冒号前面的就是文件夹名称
r.get('天蝎座:mpp')
#以下操作是针对哈希类型 ,hash类型即是嵌套字典 for k in r.keys(): #删除所有的key r.delete(k) r.hset('stu_info','刘伟','1m8 100w存款') r.hset('stu_info','张流量','浪,为了不交作业,故意让狗咬他') r.hset('stu_info','董春光','为了不交作业,找了一条狗咬张流量,然后陪张流量去医院') print(r.type('stu_info')) #查看key类型 print(r.hget('stu_info','张流量').decode())#指定大key和小key获取对应的数据 print(r.hgetall('stu_info'))#获取里面所有的k和v,打印出来的是二进制 stu_info=r.hgetall('stu_info') #获取所有的k,v并且一个个打印出来 new_stu_info={} for k,v in stu_info.items(): new_stu_info[k.decode()]=v.decode() print(new_stu_info) r.expire('aa',100) r.hdel('stu_info','gyz') #删除指定key r.delete(('stu_info')) #删除整个key #pymysql、json、redis #1、连数据库,查到数据库里面所有的数据,游标类型要用pymysql.curosrs.DictCour #2、查到所有数据 [ {"id":1,"passwd":"49487dd4f94008a6110275e48ad09448","username":"niuhayang","is_admin":1}] #3、循环这个list,取到usernamer,把username当做key #4、再把这个小字典转成json,存进去就ok。 import pymysql,json,redis r = redis.Redis(host='xx.xx.xx.xx',password='HK139bc&*',db=3,port=6379) coon = pymysql.connect(host='xx.xx.x.x',user='jxz',passwd='123456',db='jxz',charset='utf8') cur = coon.cursor(cursor=pymysql.cursors.DictCursor) #指定返回字典 cur.execute('select * from my_user;') all_data = cur.fetchall() #获取数据库查询所有的返回结果 for data in all_data: k = data.get('username') # print(k) # print(json.dumps(data)) r.hset('stu_info_cfj',k,json.dumps(data)) #字典转成json串再传入hash cur.close() coon.close()

 

posted @ 2018-05-15 11:26  小静学测试  阅读(2444)  评论(0编辑  收藏  举报