zoukankan      html  css  js  c++  java
  • pyhton:操作redis

    一、redis介绍

    redis是一种非关系型数据库:没有表结构,没有字段,没有sql语句。只是用get获取数据,set插数据,类似字典。比如mangodb,redis
    redis的数据全存在内存,redis本身每秒支持30万次读写,性能很好。但是没办法持久化,redis一重启就没了

    二、redis数据库的连接

    redis数据库连接时要引入redis模块,这是个第三方模块,需要安装,安装后引入

    import redis

    r=redis.Redis(host='192.168.10.1',password='*&&*1254',db=1,port=6379)#host是redis数据库服务器ip,db可根据实际情况进行连接。port默认是6379,根据实际情况填写

    三、redis数据类型

    1、string

    string类型就是简单的key-value.,可以通过get和set方法获取和设置值

    #增删改查
    # r.set('dfdf','帅')#增加和修改都用set。其实带有四个参数,如果不写明,则默认ex=None, px=None, nx=False, xx=False
    '''参数:
         set(name, value, ex=None, px=None, nx=False, xx=False)
         ex,过期时间(秒)
         px,过期时间(毫秒)
         nx,如果设置为True,则只有name不存在时,当前set操作才执行,同setnx(name, value)
         xx,如果设置为True,则只有name存在时,当前set操作才执行'''

    r.set('aaa','2',nx=True)如果存在aaa,则不会修改aaa的值,如果不存在,会创建aaa,等同于r.setnx('aaa','2')
    r.set('aaa','2',ex=10)等同于r.sexex('aaa','2',10)
    r.set('aaa111','2',xx=True)存在key则修改,如果不存在,不执行

    r.psetex(name, time_ms, value)#设置过期时间毫秒.等同于r.set('aaa','2',px=20000)
    #设置过期时间(豪秒)
    # r.delete('dfdf')#删除,指定key即可
    # r.setex('zy','hhhh',10)#设置失效时间。10秒后key就删除了
    # print(r.get('hwt').decode())#直接获取是个二进制,用decode方法将二进制转变成字符串
    # print(r.keys())#获取到所有的key
    # print(r.keys('niu*'))#查出所有以niu开头的key
    # print(r.get('lynn'))#get一个不存在的key,返回none
    
    # r.set('双子座zy:zy','放在文件夹中')#key前加上冒号:,冒号前的就是文件夹
    # r.set('双子座zy:zy:01','多层文件夹')
    # r.get('双子座zy:zy')
    
    
    # for k in r.keys:#循环遍历所有的key,然后删除
    #     r.delete(k)
    
    
     

    mset()

    #批量设置值
    r.mset(name1='zhang', name2='lisi')
    #
    r.mget({"name1":'zhang', "name2":'lisi'})

    mget(keys, *args)

    #批量获取
    print(r.mget("name1","name2"))
    #
    li=["name1","name2"]
    print(r.mget(li))

    2、hash类型

    类似嵌套字典,key对应的还是个key-value;数据库中存储如下sessionzy就是对应的还是一个key-value

    操作:

    # r.hset('sessionzy','hhh','1nnfjdfjebfdfd')#哈希插入数据用hset.参数中第一个是外层,然后第二个是key,第三个是value
    # print(r.type('stu_info'))#查看key的类型
    
    # print(r.hget('stu_info','1212').decode())#获取哈希类型数据用hget.第一个参数是外层key,第二个参数是内层key
    # print(r.hgetall('stu_info'))#获取key内的所有key-value,二进制
    
    # r.hdel('stu_info','哈哈哈')#删除指定的key
    # r.delete('stu_info')#删除整个key
    #r.expire('aaa',100)#设置key失效时间,不管是string还是hash都可使用
    # print(r.ttl('jd'))#获取key还有多久失效
    # dic={}
    # for k,v in r.hgetall('stu_info').items():#循环将所有key,value转换成字符串
    #     dic[k.decode()]=v.decode()
    # print(dic)
    # r.hset('sessionzy','zhangyao',{'session':'wewewe','logintime':232323})
    # print(type(r.hget('sessionzy','zhangyao').decode()))
  • 相关阅读:
    数组循环三种方式
    PHP上传RAR压缩包并解压目录
    把session写到数据库中
    PHP错误处理方式
    PHP异常处理机制
    css文字的强制换行和超出宽度省略变成点儿
    Mybatis之@Provider的使用方式
    rsync+ssh 枯木
    RHEL6下squid代理之正向代理 枯木
    MySQL体系结构 枯木
  • 原文地址:https://www.cnblogs.com/bendouyao/p/9019621.html
Copyright © 2011-2022 走看看