• 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

  • 相关阅读:
    ubuntu server安装桌面
    apache使用gzip压缩
    NoSQL开篇——为什么要使用NoSQL
    HTMl5的sessionStorage和localStorage
    apache服务器开启虚拟主机后localhost和ip无法访问的问题
    hg(Mercurial)使用参考
    meta的httpequiv属性详解
    分享一道笔试题[有n个直线最多可以把一个平面分成多少个部分]
    框架入手心得
    最简单的弹出层代码
  • 原文地址:https://www.cnblogs.com/megachen/p/11074713.html
Copyright © 2020-2023  润新知