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

    一,python安装redis模块

    pip3 install -y redis

    二,python连接redis

    import redis
    
    r = redis.Redis(host='192.168.1.108',port=6379,password='dasini',db=0)
    
    # r = redis.StrictRedis(host='192.168.1.108',port=6379,db=0)端口可以默认可以不写
    
    r.set('name','test')
    
    print(r.get('name'))
    
    #redis输出的结果默认是二进制流,为了方便其他代码处理,所以我们可以添加decode_resopnses=True.
    
    import redis
    
    r = redis.Redis(host='192.168.1.108',port=6379,password='dasini',db=0,decode_responses=True)
    
    r .set('name','python')
    
    print(r.get('name'))
    

      

    三,使用连接池

    import redis
    
    pool = redis.ConnectionPool(host='192.168.1.108',port=6379,password='dasini',db=0,decode_responses=True)
    
    r = redis.Redis(connection_pool=pool)
    
    r.set('name2','ruby')
    
    print(r.get('name2'))

    四,常用的数据类型的操作

    a,String操作

    import redis
    
    pool=redis.ConnectionPool(host='192.168.1.108',port=6379,password='dasini',db=0,decode_responses=True)
    
    r = redis.Redis(connection_pool=pool)
    
    
    #set(name, value, ex=None, px=None, nx=False, xx=False) 创建key和value
    '''
    ex 表示过期时间,以s为单位
    px 表示过期时间,以ms为单位
    nx 当nx的值为True时,如果name不存在,则执行set操作
    xx 当xx的值为True时,如果name存在,则执行set操作
    '''
    
    r.set('name','python')
    
    print(r.get('name'))
    
                    # 运行结果:python
    
    #创建过期时间的key
    
    r.set('sex','male',ex=100)
    print(r.get('sex'))
    
    
    
    #setnx,和set中的参数nx一样,如果key存在,则不执行set操作。
    
    r.setnx('name','ruby')
    
    print(r.get('name'))
    
                    # 运行结果:python
    
    
    #setex,psetex 和set中参数ex一样,可以设置生命周期,其中setex单位为s,psetex单位为ms.
    
    r.setex('address','sh',100)
    r.psetex('mail',100,'ttsir@foxmail.com')
    
    
    #mset  批量设置key
    
    r.mset(name1='tom',name2='jack')
    
    print(r.mget('name1','name2'))
    
    
    #append往  key里面追加内容
    
    r.set('mystring','good good study study')
    r.append('mystring',' day day up up')
    
    print(r.get('mystring'))
    

      

     b,list常用操作

    #删除testlist
    r.delete('testlist')
    #从列表左边插
    r.lpush('testlist',1)
    r.lpush('testlist',2)
    
    #从列表右边插
    r.rpush('testlist',3)
    
    #输出列表的内容
    print(r.lrange('testlist',0,-1))
    
    #计算列表的元素
    
    print(r.llen('testlist'))
    
    #在列表指定位置插入值
    
    r.linsert('testlist','after',3,4)   #在testlist列表中找到下标为3的元素然后在它后面插入4
    
    print(r.lrange('testlist',0,-1))
    
    #更改列表中的指定下标的值
    
    r.lset('testlist',0,10000)
    
    print(r.lrange('testlist',0,-1))
    
    #删除列表中的元素
    r.lpush('testlist',1)
    print(r.lrange('testlist',0,-1))
    r.lrem('testlist',1)
    print(r.lrange('testlist',0,-1))
    
    
    #删除列表中最后1个元素或者第一个元素
    r.lpop('testlist')
    
    print(r.lrange('testlist',0,-1))
    
    r.rpop('testlist')
    print(r.lrange('testlist',0,-1))
    
    
    #根据下标获取某个值
    
    r.lindex('testlist',0)
    
    print(r.lrange('testlist',0,-1))
    

      

    c,无序集合操作(set)

    #sadd 给集合添加元素
    
    r.sadd('set1',1)
    r.sadd('set1',2)
    
    #scard 输出集合中元素的个数
    print(r.scard('set1'))
    
    #smembers 获取字典中所有的元素
    
    print(r.smembers('set1'))
    
    #spop 删除集合中的最后一个元素并将其返回
    
    print(r.spop('set1'))
    print(r.smembers('set1'))
    
    #srem 删除集合中的元素
    
    r.sadd('set1',4)
    
    r.srem('set1','4')
    
    print(r.smembers('set1'))
    

      

    d,有序集合(sorted set),对于有序集合,每一个元素有两个值

    #zadd 创建添加有序集合,默人是以升序的方式显示
    
    # r.delete('set2')
    r.zadd('set2','apple',13,'banana',12)
    print(r.zrange('set2',0,-1))
    
    #反序的形式输出
    print(r.zrevrange('set2',0,-1))
    
    #返回有序集合元素的个数
    
    print(r.zcard('set2'))
    
    #删除有序集合的元素
    
    print(r.zrem('set2','apple'))
    
    print(r.zrange('set2',0,-1))
    

      

    e,hash操作

    #hset 创建hash添加元素
    
    r.hset('h1','name','dasini')
    
    print(r.hget('h1','name'))
    
    #hmset 创建多个元素
    
    
    r.hmset('h2',{'name':'tom','sex':'male'})
    print(r.hmget('h2','name','sex'))
    
    #hlen 判断hash的个数
    
    print(r.hlen('h2'))
    
    
    #hkeys 获取set对应的hash中所有的key的值
    
    print(r.hkeys('h2'))
    
    #hvals获取set对应的hash中所有的value的值
    
    print(r.hvals('h2'))
    
    
    #hdel将set对应的hash中指定key的键值对删除
    
    print(r.hdel('h2','name'))
    
    print(r.hgetall('h2'))
    

      

  • 相关阅读:
    mongodb
    python中读取文件的read、readline、readlines方法区别
    uva 129 Krypton Factor
    hdu 4734
    hdu 5182 PM2.5
    hdu 5179 beautiful number
    hdu 5178 pairs
    hdu 5176 The Experience of Love
    hdu 5175 Misaki's Kiss again
    hdu 5174 Ferries Wheel
  • 原文地址:https://www.cnblogs.com/lin1/p/9055545.html
Copyright © 2011-2022 走看看