• 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 #删除该键

  • 相关阅读:
    IIS7运行.NET Framework 4 报500错误
    祝大家新年快乐,兔年行大运
    生成高清缩略图; 添加图片、文字水印; 图片、文字水印透明
    NHibernate中使用Guid作为主键、项目中NHibernate与Log4net共存
    使用split进行大数据分割时内存溢出解决方案
    about server.MapPath
    Lucene 如何实现高性能 GroupBy <一>
    理解委托(delegate)及为什么要使用委托
    观亚运会开幕式有感
    c#中的new、override
  • 原文地址:https://www.cnblogs.com/zenan/p/11058283.html
Copyright © 2020-2023  润新知