redis数据结构以及性能原理

  1. redis数据类型
    1. String
    2. hash
    3. list
    4. set
    5. zset
  2. 各个数据类型使用场景
    1. String:token,标识等的存储
    2. hash:对象存储
    3. list:栈(FILO-先进后出),队列:(FIFO-先进先出),阻塞队列等
    4. set:关系网,点赞
    5. zset:排行,时间段时间内排行汇总
  3. redis单线程高可用
    1. 单线程指当在执行命令时是按照单线程去执行的命令
    2. redis处理多客户端连接使用NIO(异步非阻塞io)多路复用,先建立连接,之后由文件事件分派器将执行的命令发送给命令请求处理器,此时按照单线程执行
  4. redis渐进式便利
    1. scan命令
  5. redis持久化
    1. RDB:快照模式,在某一时刻把所有数据写入磁盘,生成的文件存储在当前目录下,生成dump.rdb文件,目录可修改,再redis.conf中修改。
      1. 持久化save命令:save命令会导致所有的操作阻塞
      2. 持久化bgsave命令:该命令不会导致持久化快照文件时操作阻塞,为异步方法;该命令有一个COW-copy on write(写时复制)机制,当执行了bgsave命令之后,会新开一个进程去生成RDB文件,此时如果有新的操作命令进来修改数据,那么会同时修改复制出来的rdb文件中的数据。
    2. AOF:redis-conf文件中appendonly 可以开启AOF持久化,可配置为指定的方式持久化
      1. always:每进行一次数据操作,就将数据写入磁盘文件中
      2. everysec:设置时间,比如每秒执行一次
      3. no:从不主动发起持久化,数据交给操作系统来处理,更快但更不安全
    3. 优缺点:AOF更安全,RDB更快,体积更小(二进制存储)
    4. 默认开启:RDB
    5. 混合模式:两个模式都开启之后,之前的数据会生成rdb格式,写入到appendonly.aof文件中,后面再执行的命令会以appendonly.aof的形式,追加到AOF文件中

你可能感兴趣的:(redis,数据结构,缓存)