Redis 使用总结

1. 避免大key

  • 危害:
    • 数据热点问题,集群模式在slot分片均匀情况下,会出现数据和查询倾斜情况,部分有大key的Redis节点占用内存多,QPS高
    • 慢查询问题,服务超时
    • 网卡带宽压力,极端情况下会打满带宽

2.使用优化

  • 过期时间

    • 为大key或者特定业务设置合理过期时间,避免同一时间大量过期。同时 也可以避免回源速度过快
  • 合理设置数据结构

    • 尽可能使用 hash
    反例:
    set user:1:name Amy
    set user:1:age 20
    set user:1:favor music
    
    正例:
    hmset user:1 name Amy age 20 favor music
    
  • 使用批量命令
    案例1

        SET->MSET
        GET->MGET
        LSET->LPUSH
        LINDEX->LRANGE
        HSET->HMSET
        HGET->HMGET
    

    案例2

    同时设置过期时间value与expire时间: SET key value [EX seconds] [PX milliseconds] [NX|XX]
    

3.错误的使用方式

  • 使用Redis作为队列服务

    • 由于Redis队列中数据是不能重复消费的
  • 使用 Redis pub/sub做消息服务

    • 由于消息传递没有ack机制,不能保证到达率
posted @ 2020-01-22 11:37  alin_qu  阅读(263)  评论(1编辑  收藏  举报