zoukankan      html  css  js  c++  java
  • 使用python操作redis

    一、操作redis

    # 传统的关系型数据库
    #   mysql oracle sql server sqllie db2
    #   id name passwd creatime stu
    #   score
    #   数据存在磁盘上
    #   使用sql语句来操作数据
    #   表与表之间有关系
    # 非关系型数据库nosql
    #   {‘name':'xxx','sex':'xxx'}只要是key:value形式的就可以保存,类似字典
    #   mongodb 数据存在磁盘上的
    #   redis 数据都是存在内存里面
    
    import redis
    r = redis.Redis(host='ip',port=6379,password='****',db=10)
    # 连接redis
    
    # 增删改查
    # 操作string类型
    # r.set('yy_info','age 19 sex man ddddddaaaa')# 增加、修改数据  key value 过期时间(不写则默认为-1)
    # res = r.get('yy_info')# 获取数据
    # bytes #二进制
    # print(res.decode())# 编码,就变成了字符串
    # r.delete('yy_info')# 指定一个key删除,key不存在的话,也不会报错
    
    # res1 = r.get('yy_info999')
    # print(res1)# None 不存在的key,会报None;若用decode,会报错
    
    
    
    # 其他的方法
    # print(r.keys('*info'))# 获取到所有的key;填写'*info',会寻找满足条件的key
    # print(r.exists('yy_info'))# 判断这个key是否存在
    # r.flushdb()# 清空当前数据库里面所有的key
    # r.expire('session_crm',600)# 指定失效的时间
    # print(r.ttl('session_crm'))# 用来看这个key的失效时间
    # print(r.type('session_crm'))# 看key的类型
    
    
    # hash哈希类的key
    # 哈希类型可以理解为一个字典嵌套字典
    # redis命令行里面select 10就是切换数据库
    
    # 增删改查
    r.hset('session_crm','aaa','ooooooooooo')#
    r.hset('session_crm','bbb','ooooooooooo')#
    r.hset('session_crm','ccc','ooooooooooo')#
    # 修改也是hset
    # r.hdel('session_crm','aaa')# 删除指定的小key
    # r.deleter('session_crm')# 直接删除大key
    
    # 查询
    # print(r.hget('session_crm','aaa'))# 获取指定小key里面的数据
    # print(r.hgetall('session_crm'))
    
    res = r.hgetall('session_crm')
    
    # a = {}
    # for k,v in res.items():
    #     a[k.decode()]=v.decode()
    # print(a)
    
    # 下面的方法与上面的方法作用等同
    for k,v in res.items():
        res[k.decode()] = res.pop(k).decode()  #能节省内存,因为把原来的key删掉了
    print(res)
    
    
    
    # import requests
    # print(requests.post('http://ip/api/user/login',data={'username':'niuhanyang','passwd':'aA123456'}).text)

     二、redis manager的相关操作

     打开命令行

     切换数据库

     三、 decode_responses=True: 解决获取的值类型是bytes字节问题;写入的键值对中的value为str类型,不加这个参数写入的则为字节类型

    # decode_responses=True: 解决获取的值类型是bytes字节问题
    r = redis.Redis(host='localhost', port='6379', db=0, decode_responses=True)

    如下图,是在utp的配置文件中进行设置decode_responses

    关于python操作redis的介绍,可参考如下链接:

    https://www.cnblogs.com/logicalsky/p/5946647.html

    https://www.jianshu.com/p/2639549bedc8

  • 相关阅读:
    工欲性能调优,必先利其器(2)- 火焰图
    工欲性能调优,必先利其器(1)
    关于烂代码的那些事(上)
    HTTP 返回码中 301 与 302 的区别
    HTTP 状态码 301 和 302 详解及区别——辛酸的探索之路
    HTTP 状态码之:301、302 重定向
    记一次获得 3 倍性能的 go 程序优化实践,及 on-cpu / off-cpu 火焰图的使用
    Coloring Flame Graphs: Code Hues
    StackOverflow 创始人关于如何高效编程的清单
    Spring Bean的生命周期(非常详细)
  • 原文地址:https://www.cnblogs.com/Noul/p/9294171.html
Copyright © 2011-2022 走看看