• redis的数据结构有那些
    • 字符串 String
    • 字典:Hash
    • 列表:List
    • 集合:set
    • 有序集合:sortedSet
  • 如果大量的key设置在同一时间过期,一般需要注意什么
    • 大量的key过期时间过于集中,到了过期的那个时间点,redis可能会出现短暂的卡顿现象。一般在过期时间上加上随机数值。使过期时间分散一些。
  • Redis Save 与bgsave的区别
    • save命令:执行一个同步操作的命令,将当前redis实例的所有数据快照以RDB文件的形势保存到硬盘;保存是阻塞主进程,客户端无法连接redis,等save命令执行完后,主进程才开始工作,
    • bgsave:命令执行后立即返回ok,然后redis fork出一个新的子进程,原来的redis进程继续处理客户端请求,而子进程负责将数据保存到硬盘,然后退出;
  • redis如何做持久化
    • RDB:在指定的时间内,将内存中的数据快照写入硬盘实际操作是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之前的文件,用二进制压缩存储;
      • RDB的常用配置
        • save 900 1 #在900秒之后,如果至少有1个key发生变化,则dump内存快照
        • save 900 10 #在900秒之后,如果至少有10个key发生变化,则dump内存快照
        • save 600 1 #在600秒之后,如果至少有一个key发生变化,则dump内存快照
    • AOF:以日志的形式记录服务器所处理的每一个写、删除操作,查询操作不会记录,
      • AOF持久化配置
        • appendfsync always #每次有数据修改发生时,都会写入AOF文件。
        • appendfsync everysec #每秒钟同步一次,默认配置
        • appendfsync no #从不同步,数据不会被持久化
    • bgsave做镜像全量持久化,aof做增量持久化;bgsave耗时比较长,停机时间长,从而导致在停机的时候会导致大量的数据丢失,所以需要aof配合来使用。在redis重启的时,会使用bgsave持久化文件重新构建内存,再使用aof重放近期操作的指令来完整恢复重启之前的状态。
      bgsave的原理:
      • fork:redis通过创建子进程来进行bgsave操作,
      • cow:copy on write。子进程创建后,父子进程共享数据段,父进程提供读写服务,写脏的页面数据会主键和子进程分离开来
  • Redis集群原理
    • 在redis的每一个节点上,有一个插槽(slot),可以理解为是一个可以存储两个数值的一个变量,这个变量的取值范围使0~16383。当对整个集群进行操作的的时候,存储的key会通过CRC16(key) mod 16384,得到的值就是这个key存储的slot。然后就去查找这个slot对应的redis节点。同样的,redis查询也是按照这种算法来确定redis节点的。
    • 插槽的数量计算: 13684 / redis集群节点数量。当需要redis节点需要扩展的时候,slot需要重新进行迁移。
 
 

最新文章

  1. LoadRunner:视频教程、课件
  2. C#读写文本文件
  3. Flashback闪回技术小实验
  4. c#对Aspose.Word替换书签内容的简单封装
  5. 微型 ORM-FluentData 温故知新系列
  6. LR Socket 测试demo
  7. mysql group by优化
  8. DiscreteSeekBar使用简介,一个带气泡的SeekBar
  9. C#获取远程计算机硬件信息实例(支持linux和windows)
  10. iOS模拟器沙盒使用推荐
  11. BZOJ1419: Red is good
  12. (三十三)UIApplicationDelegate和程序的启动过程
  13. 深入Java虚拟机:多态性实现机制——静态分派与动态分派
  14. Express全系列教程之(八):session的基本使用
  15. Codeforces Round #553 (Div. 2) C. Problem for Nazar 数学
  16. PHP之错误
  17. EasyUI添加进度条
  18. Oracle RAC时间同步(NTP/CTSS)
  19. ACM-ICPC 2018 焦作赛区网络预赛G Give Candies(隔板定理 + 小费马定理 + 大数取模,组合数求和)题解
  20. 使用FormData数据做图片上传: new FormData() canvas实现图片压缩

热门文章

  1. mysqldump 导出中文乱码
  2. 【.NET Core微服务实战-统一身份认证】开篇及目录索引
  3. 1.5 A better alternative thing: React Native
  4. Mysql索引最左匹配原则
  5. Dubbo工作原理,集群容错,负载均衡
  6. vue中实现动态切换不同的值
  7. [Swift]LeetCode74. 搜索二维矩阵 | Search a 2D Matrix
  8. [Swift]LeetCode764. 最大加号标志 | Largest Plus Sign
  9. C++函数重载,重写,重定义
  10. Python数据挖掘(爬虫强化)