• 使用python操作redis(管道)


    一、redis连接

    redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis-py。

    redis连接实例是线程安全的,可以直接将redis连接实例设置为一个全局变量,直接使用。如果需要另一个Redis实例(or Redis数据库)时,就需要重新创建redis连接实例来获取一个新的连接。

    安装redis

    pip install redis
    

    连接redis,加上decode_responses=True,写入的键值对中的value为str类型,不加这个参数写入的则为字节类型。

    二、连接池连接

    redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。默认,每个Redis实例都会维护一个自己的连接池。可以直接建立一个连接池,然后作为参数Redis,这样就可以实现多个Redis实例共享一个连接池

    连接池:redis_pool.py

    import redis
    from redis_pool import POOl
    conn = redis.Redis(connection_pool=POOl)
    conn.set('name', 'LinWOW')
    print(conn.get('name'))
    

    三、redis-py 操作redis

    python操作redis的命令和命令行几乎一致,除了del,因为和关键字重叠,所以用delete

    1、字符串类型操作:

    set----键key

    con.set('key','values')

    get---获取数值

    con.get('com')

    append --- 追加

    con.append('keys','values')

    delete---删除

    con.delete('keys')

    2、List类型:

    rpush 、lpush----添加数据

    con.rpush('keys','values')

    con.lpush('keys','values')

    lrange---查看数据

    con.lrange('list',0,11)

    lset---修改数据

    con.lset('list_F',1,'Fyn')---返回布尔值

    rpop ---- 随机删除一个数据

    con.rpop('keys')

    lrem ---- 指定删除一个数据时

    con.lrem('list_f',0,'okl')

    3、Hash类型

    hmget --- 添加多条数据,也可插入单条数据

    以字典的形式插入

    con.hmste('keys',{'name':''age})#插入结果返回布尔值

    hget , hgetall , hvals,hkeys查看数据

    con.hget('ok','name')

    con.hgetall('ok')#结果返回字典

    con.hvals('ok')#获取所有的键值

    con.hkeys('ok')#获取所有的键

    hdel 、 del----删除某个字段,删除整个hash

    con.hdel('ok',age)#指定删除某个字段 ,成功的话返回1,否则返回0

    con.del('ok')#删除整个hash

    4、set

    sadd---添加数据

    con.sadd('mk','oi'.'Hwelo')

    smembers ---- 查看所有数据

    con.smembers('mk')

    spop---随机删除一个元素

    con.spop('con.spop('mk')')

    srem--- 指定删除某个元素

    con.srem('mk','oi')

    5、sorted set

    zadd---添加数据

    con.zadd('set_f',{'name':1.1,'age':2,'sex':3})

    zrange ---- 查询数据

    con.zrange('set_f',0,11)

    zrem ---指定删除某个元素

    con.zrem('set_f','age')

    四、redis-py管道操作 piplines

    管道是redis的子类,它支持在一个请求中款冲多个命令到服务器

    管道使redis的读写速度更加的快速。秒级取值1000+的数据。

    并且使用pipline实现一次请求指定多个命令,并且默认情况下一次pipline 是原子性操作。

    #1、创建一个管道
    pipe = con.pipeline()
    
    #缓冲多个命令
    pipe.keys('*')
    pipe.set('name','Mkl')
    
    #执行命令
    res = pipe.execute()#返回列表
    print(res[0])
    print(res[1])
    
    管道的命令可以写在一起,如:
    
    pipe.set('hello', 'redis').sadd('faz', 'baz').incr('num').execute()
    print(r.get("name"))
    print(r.get("role"))
    print(r.get("num"))
    
    
    
  • 相关阅读:
    标准函数头部注释
    排序
    #define _INTSIZEOF(n)
    并发编程资料
    memory model
    Ubuntu搜狗输入法的使用
    gprof
    xml_editor
    创建本地Ubuntu镜像
    设计模式9:建造者模式
  • 原文地址:https://www.cnblogs.com/zzsy/p/12638752.html
Copyright © 2020-2023  润新知