Redis | 青训营

55 阅读1分钟

Redis

什么是Redis

Redis.png

  • 数据从内存中读写
  • 数据保存到硬盘上防止重启数据丢失
    • 增量数据保存到AOF文件
    • 全量数据RDB文件
  • 单线程处理所有操作命令

redis-单线程.png

应用案例与Redis的数据结构

  1. String

数据结构:sds

  • 可以存储字符串,数字,二进制数据
  • 通常和expire配合使用
  • 场景存储计数,Session

redis-sds.png

  1. Quicklist

List数据结构Quicklist由双向链表和listpack实现 redis-quicklist.png

  1. Listpack

redis-listpack.png

  1. Hash

Hash数据结构dict

  • rehash:将ht[0]中的数据,全部迁移到ht[1]中。数据量小的场景下,直接将数据从ht[0]拷贝到ht[1]速度是较快的。数据量大的场景下,例如存有上百万的KV时,迁移过程会明显阻塞用户请求
  • 渐进式rehash:为避免这种情况,使用rehash方案。基本原理就是,每次用户访问时都会迁移少量的数据。将整个迁移过程,平摊到所有访问用户请求过程中

redis-hash.png

  1. zskiplist

zset数据结构zskiplist

redis-zskiplist.png