zoukankan      html  css  js  c++  java
  • 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())  #xe5xb8x85  二进制转为字符串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()
  • 相关阅读:
    hdu 1823 Luck and Love 二维线段树
    UVA 12299 RMQ with Shifts 线段树
    HDU 4578 Transformation 线段树
    FZU 2105 Digits Count 线段树
    UVA 1513 Movie collection 树状数组
    UVA 1292 Strategic game 树形DP
    【ACM】hdu_zs2_1003_Problem C_201308031012
    qsort快速排序
    【ACM】nyoj_7_街区最短路径问题_201308051737
    【ACM】nyoj_540_奇怪的排序_201308050951
  • 原文地址:https://www.cnblogs.com/xiaojing2017/p/9040069.html
Copyright © 2011-2022 走看看