美文网首页
Redis 基本操作

Redis 基本操作

作者: 西门早柿 | 来源:发表于2021-02-01 22:43 被阅读0次

    Redis 基本操作

    • set
      • mset
      • setnx
      • setex
      • incr
      • incrby
    • get
      • mget
    • exists
    • del
    • expire

    基本数据结构

    • string
      • 位图操作
        • setbit
        • getbit
        • bitcount
        • bitops
        • bitfield get/set/incrby
          • 溢出策略:wrap/sat/fail
    • list
      • rpush
      • llen
      • rpop
      • lpop
      • lindex O(n)
      • ltrim O(n)
      • lrange O(n)
    • hash
      • hset
      • hget
      • hmset
      • hmget
      • hlen
      • hgetall
    • set
      • sadd
      • scard
      • smembers
      • sismember
      • spop
    • zset (WITHSCORES)
      • zadd [score key]
      • zrange [start end]
      • zrevrange
      • zcard
      • zscore [key]
      • zrangebyscore [score0 score1]
      • zrem

    分布式锁

    • setnx -> lock
    • del -> unlock
    • 如何保证锁及时得到释放及不被错误释放
      • 过期时间
        • 由于 setnx 和 expire 不是原子指令,可能导致 expire 没有生效
        • set key value ex 5 nx,这个指令是 setnx+expire 的原子指令
      • lock 的值设一个随机数,del 时判断这个随机值是否正确
        • 但 get 和 del 也不是一个原子操作,所以可能会有问题
        • 可以用 lua 脚本将 get 和 del 封装成一个原子操作
    • 可重入锁与非可重入锁

    队列

    • rpush/rpop/lpop 非阻塞,浪费 CPU
    • brpush/brpop/blpop
      • 服务端会断开长时间闲置的客户端连接,使用 brpop 时不会永远阻塞,要注意处理异常
    • zset 实现延时任务队列

    HyperLoglog

    • 用来模糊统计超大集合中不同 key 的个数,非精确的去重统计方案
    • pfadd/pfcount/pfmerge

    Bloom Filter

    • 存在的不一定存在
    • 不存在的一定不存在
    • 实现原理

    限流算法

    • 滑动窗口
    • 漏斗算法
    • 令牌桶算法
    • Redis-Cell
      • cl.throttle

    GeoHash

    • 用来计算地球坐标之间的距离,包括指定两个坐标间的距离,以及获取离某个坐标最近的几个目标。
    • 内部其实就是一个 zset,保存的是坐标编码之后的值。

    keys & scan

    • keys 使用不当会极大的影响 redis 的稳定性
    • scan 0 match key99* count 1000
      • 其中 1000 指的不是返回的结果数,而是约等于遍历的 slot 数
      • scan 的细节
        • 返回结果可能有重复,需要客户端去重
        • 遍历的过程有数据修改,修改后的值能不能遍历到是不一定的
        • rehash 的影响是如何解决的
    • --big-keys 用来找到 redis 中的大 key

    相关文章

      网友评论

          本文标题:Redis 基本操作

          本文链接:https://www.haomeiwen.com/subject/ghmutltx.html