zoukankan      html  css  js  c++  java
  • Python操作Redis

    简介

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

    安装Redis

    • 安装
      $docker run --name redis -d -p 6379:6379 redis
    • 安装依赖库
      $pip install redis

    连接Redis

    连接redis,默认存储为byte类型。decode_responses=True参数使得存储类型为string,但性能不如byte。

    import redis   # 导入redis模块,通过python操作redis 也可以直接在redis主机的服务端操作缓存数据库
    
    r = redis.Redis(host='localhost', port=6379) 
    r.set('key', 'value') 
    print(r['key'])
    print(r.get('key'))  # 取出键name对应的值
    print(type(r.get('key')))
    

    连接池

    redis-py使用connection pool来管理对一个redis server的所有连接,避免每次建立、释放连接的开销。
    可以直接建立一个连接池,然后作为参数传递给Redis方法,这样就可以实现多个Redis实例共享一个连接池。
    redis模块为我们实现了释放连接回连接池,因此我们不需要手动释放。

    import redis
    
    pool = redis.ConnectionPool(host='localhost', port=6379, max_connections=32)
    r = redis.Redis(connection_pool=pool)
    r.set('gender', 'male')     # key是"gender" value是"male" 将键值对存入redis缓存
    print(r.get('gender'))      # gender 取出键male对应的值
    

    Api

    String

    set(name, value, ex=None, px=None, nx=False, xx=False)
    在Redis中设置值,默认,不存在则创建,存在则修改
    参数:
    ex,过期时间(秒)
    px,过期时间(毫秒)
    nx,如果设置为True,则只有name不存在时,当前set操作才执行
    xx,如果设置为True,则只有name存在时,当前set操作才执行

    get key

    List

    lpush key value # 头部添加
    rpush key value # 尾部添加
    llen key # 查看列表长度
    lrange start end # 查看一段列表 lrange key 0 -1 返回所有数据
    lpop key # 从左侧删除元素
    rpop key # 从右侧删除元素

    Set

    sadd key member # 添加元素
    srem key member # 删除元素
    spop key # 删除并返回元素
    sismember key member # 判断member是否在set中,返回1表示存在
    sinter key1 key2 key3 # 返回给定集合的交集
    sunion key1 key2 key3 # 返回给定集合的并集
    sdiff key1 key2 key3 # 返回给定集合的差集
    smembers key # 返回集合所有元素
    scard key # 返回集合元素个数

    Sorted Set

    zadd key score member # 添加元素
    zrem key member # 删除元素
    zrange key start end # 返回有序结果,升序
    zcard key # 返回集合中元素个数
    zscore key element # 返回给定元素对应的score

    Hash

    hset key field value # 设置hash值
    hget key field # 获取hash值
    hexists key field # 测试指定field 是否存在
    hdel key field # 删除指定的hash field
    hlen key # 获取域的数量
    hkeys key # 获取所有的域名
    hgetall # 获取所有域名和值

    其他

    keys * #查看所有key
    exists key #判断指定key是否存在,存在返回True,反之False.
    ttl key #查看有效时间以秒为单位
    type key #查看键的类型
    del key #删除该键

  • 相关阅读:
    OpenCascade Ray Tracing Rendering
    Create New Commands in Tcl
    OpenCascade Modeling Algorithms Fillets and Chamfers
    OpenCascade Modeling Algorithms Boolean Operations
    Construction of Primitives in Open Cascade
    Open Cascade Data Exchange STL
    Tcl Tk Introduction
    Open Cascade DataExchange IGES
    Netgen mesh library : nglib
    Hello Netgen
  • 原文地址:https://www.cnblogs.com/zenan/p/11058283.html
Copyright © 2011-2022 走看看