Python

Python - Redis

安装

  • brew install redis
  • pip install redis
  • redis-server --port 6379

连接

直接连接

  • r = redis.Redis(host='localhost', port=6379, decode_responses=True)
    1. decode_responses=True 则 redis 在返回数据时不会返回 byte 类型, 就是对 byte 进行解码

基于连接池

  • pool = redis.ConnectionPool(host='localhost', port=6379, decode_responses=True)
  • r = redis.Redis(connection_pool=pool)

删除

  • r.keys(): 获取所有的 key
  • r.delete(*r.keys()): 删除所有的 key

字符串常用操作(内部存储 byte)

  • set(name, value, ex=None, px=None, nx=False, xx=False)

    • name: key
    • value: string type
    • ex: expire time(second)
    • 特点
      1. 重名会覆盖
  • setnx(name, value, ex)

    • name: key
    • value: string type
    • ex: expire time(second)
    • 特点
      1. 之后当 name 对应的 value 不存在时才新建
  • psetex(name, value, ex)

    • setex 一样, 只是过期时间的单位为毫秒
  • mset(*args, **kwargs)

    • 批量存储
  • mget(*args):

    • 批量获取
  • getset(name, value):

    • 获取原来的值并设置新的值
  • getrange(key, start, end):

    • 获取 start:end 的序列
  • setrange(key, start, value):

    • 从 start 开始插入 value, 会把原来的位置给覆盖掉
  • strlen(key):

    • 计算 key 对应的值的字节数, 如果是汉子的 UTF-8 则一个 3 个字节
  • incr(self, key, amount=1)

    • 增加, 不管 value 是数组还是字符串都可以, 因为 redis 统一当做 byte
  • incrbyfloat(self, key, amount=1.0)

  • decr(self, name, amount=1)

  • append(key, value)

hash 常用操作

  • hset(name, key, value)
  • hsetnx(name, key, value)
  • hmset(name, **kwargs)
  • hmget(name)
  • hgetall()
  • hdel(name,*keys)
  • hkeys(name)
  • hexists(name, key)
  • 注意
    1. redis 在存储深层次的 dict 时在获取的时候会将 dict 转为一个字符串, 这个字符串又不可以使用 json.loads 处理, 因为它的 key 是单引号的, 所以只要在 redis 中存储 dict 时, 将 key 对应的是 dict 使用 json.dumps() 转为字符串, 获取时使用 json.loads

list 常用操作

  • lrange(name, start, end): 从左开始返回 start:end 的数据

  • llen(name): 元素个数

  • lpush(name, *value): 从左压入

  • rpush(name, *value): 从右压入

  • lset(name, index, value): 设置 index 对应的值

  • linsert(name, where, refvalue, value)

    1. where: AFTER or BEFORE
    2. refvalue: 为值不是索引
  • lrem(key, value, num):

    • 删除
  • lpop(name): 弹出

  • lindex(name, index): 返回 index 对应的 value

  • lrange(name, start, end): 切 start:end

原文地址:https://www.cnblogs.com/megachen/p/11074713.html