zoukankan      html  css  js  c++  java
  • Python学习(二十三)操作redis

    1、redis概念

    redis也是一个数据库
    关系型数据库 MySQL,oracle,sql server,db2,sqlite
    sql 数据存在磁盘上
    非关系型数据库:MongoDB、redis
    没有表,没有sql ,速度比关系型数据库快

    redis数据全部都是存在内存里面
    redis本身每秒支持30W次的读写,性能好
    redis数据不能持久化

    2、string类型 redis操作

    
    
    import redis
    r=redis.Redis(host='xxxxx',password='HK139bc&*',db=2,port=6379)
    
    r.set('liujia','') #数据库里面新增一个值,修改也是set
    r.delete('liujia')  #删除数据
    r.setex('liujia','测试',10)  #设置多少秒后key失效
    print(r.get('liujia'))#输出是bytes类型的
    res=r.get('liujia')
    print(res.decode()) #把bytes类型转换为字符串
    res1='测试'
    print(res1.encode()) #字符串转换为bytes类型
    print(r.keys())#获取到所有的key
    print(r.keys('li*'))#获取到以liu的key
    print(r.get('em'))  #获取不存在的值返回none
    r.set('白羊座:刘佳','ceshi')  #key里面有冒号,冒号前面的就会是文件夹名字
    r.set('白羊座:刘佳:测试','aaaa')  #多层文件夹
    for k in r.keys():
        r.delete(k)#删除所有内容
    
    
    对redis的操作看结果,需要RedisDesktopManager工具查看
    
    

    3、哈希类型 redis操作

    哈希类型的操作类似与字典,是key-value形式

    import redis
    r=redis.Redis(host='xxx',password='HK139bc&*',db=2,port=6379)
    r.hset('test_liujia','刘佳','白羊座')
    r.hset('test_liujia','刘佳1','双鱼座')
    r.hset('test_liujia','刘佳2','狮子座')
    print(r.type('test_liujia'))  #查看key的类型
    print(r.hget('test_liujia','刘佳').decode())  #指定大key和小key获取对应的值
    print(r.hgetall('test_liujia')) #获取里面所有的key和value

    接上面,已经加入redis的数据,把获取的所有key和value转换为字符串形式

    k1=r.hgetall('test_liujia')
    k2={}
    for k,v in k1.items():
        k2[k.decode()]=v.decode()
    print(k2)  #获取的所有key和value都转换为字符串形式

    仍然接上面

    r.hdel('test_liujia','刘佳') #删除指定key
    r.delete('test_liujia') #删除这个key
    r.expire('test_liujia',100) #设置失效时间
    print(r.ttl('test_liujia'))  #获取失效时间

    4、小练习

    连接数据库,查看数据库
    查出数据,类型用pymysql.curosrs.DictCour
    循环list,取到username当做key
    再把小字段转成json,存进去

    import pymysql,json,redis
    host, user, password, db = 'xxxx', 'jxz', '123456', 'jxz'
    coon = pymysql.connect(user=user,
                           host=host,
                           password=password,
                           db=db,
                           charset='utf8',
                           port=3306)
    cur = coon.cursor(cursor=pymysql.cursors.DictCursor)
    sql='select * from my_user;'
    cur.execute(sql)
    all_data=cur.fetchall()
    #print(all_data)
    r=redis.Redis(host='xxxx',password='HK139bc&*',db=2,port=6379)
    for k in all_data:
       r.hset('stu_info_emily',k.get('username'),json.dumps(k))
       # m=k.get('username')
       # r.hset('stu_info_emily',m,json.dumps(k))
    cur.close()
    coon.close()
     
  • 相关阅读:
    java 学习帮助
    权限
    ftp mybatis
    注解
    hadoop english
    userDao
    发布订阅模式 和委托
    webservice
    rabbitMq视频教程
    blog url.txt
  • 原文地址:https://www.cnblogs.com/emilyliu/p/9021449.html
Copyright © 2011-2022 走看看