zoukankan      html  css  js  c++  java
  • python 之操作redis数据库(非关系型数据库,k-v)

    数据库:
    1. 关系型数据库
    • 表结构
        2. 非关系型数据库 nosql (k - v  速度快),常用的时以下三种:
    • memcache 存在内存里
    • redis 存在内存里
    • mangodb 数据还是存在磁盘上
    Redis里的数据类型有String 和hash类型,下面主要是对Redis 的一些操作。

    一、String类型

    r = redis.Redis(host='localhost',port=6379,db=3)
    r.set('nancy2','201801211505') #set数据
    print(r.get('nancy')) # b'201801211505'
    print(r.get('unexsitkey')) #->None
    print(r.get('nancy1').decode()) #redis 里面取出来的数据都是bytes类型,所有要用decode()方法转成字符串 ->201801211505
    r.delete('nancy') #删除一个
    r.setex('nancy_session','aaabb66','20') #可以指定key的失效时间,最后一个单位,单位是秒
    r.set('redis:nancy','python000')
    r.set('redis:nancy1','redis00123')
    r.set('redis1:kate','redis11')
    print(r.keys())#byte 类型,list 所有的key
    print(r.keys('redis*')) #以txz开头的key,byte 类型,-> [b'redis:nancy1', b'redis:nancy', b'redis1:kate']
    print(r.type('redis:nancy'))  #-> b'string'

    注意: set get delete setex 都是针对redis里的string类型

    二、hash类型

    r.hset('sessions','lily','167890')
    r.hset('sessions','kate','34901')
    value = r.hget('sessions','nancy') #获取数据
    print(value)
    value1 = r.hget('session','unexsit')#不存在返回None
    print(value1)
    redis_data = r.hgetall('sessions') #获取hash类型里所有的数据,数据类型是字典
    all_date = {}
    for k,v in redis_data.items():
        k = k.decode()
        v = v.decode()
        all_date[k] = v
    print(redis_data)#byte 型的字典,{b'kate': b'34901', b'lily': b'167890'}
    print(r.type('sessions')) #获取key的类型 -> b'hash'
  • 相关阅读:
    高通、猎户机型Android典型bootloader分析
    Ubuntu 14.04 中安装 VMware10 Tools工具
    Linux内核中的GPIO系统之(3):pin controller driver代码分析
    linux内核中的GPIO系统之(2):pin control subsystem
    linux内核中的GPIO系统之(1):软件框架
    WINCE6.0组件选择说明
    看看,这就是微软的“万物互联”系统 window10 IOT
    高通平台 lcd driver 调试小结
    STM8S定时器工作
    开关笔记
  • 原文地址:https://www.cnblogs.com/nancyzhu/p/8338141.html
Copyright © 2011-2022 走看看