Redis设计与实现读书笔记(21-23章)
Redis设计与实现读书笔记(21-23章)
    第21章:排序   
       SORT命令通过将被排序键包含的元素载入到数组里面,然后对数组进行排序来完成对键进行排序的工作。   
       在默认情况下,SORT命令假设被排序键包含的都是数字值,并且以数字值的方式来进行排序。   
       如果SORT命令使用了ALPHA选项,那么SORT命令假设被排序键包含的都是字符串值,并且以字符串的方式来进行排序。   
       SORT命令的排序操作有快速排序算法实现。   
       SORT命令会根据用户是否使用了DESC选项来决定是使用升序对比还是降序对比来比较被排序的元素,升序对比会产生升序排序结果,被排序的元素按值的大小从小到大排列,降序对比会产生降序排列结果,被排序的元素按值的大小从大到小排列。   
       当SORT命令使用了BY选项时,命令使用其他键的值作为权重来进行排序操作。   
       当SORT命令使用了LIMIT选项时,命令只保留排序结果集中LIMIT选项指定的元素。   
       当SORT命令使用了GET选项时,命令会根据排序结果集中的元素,以及GET选项给定的模式,查找并返回其他键的值,而不是返回被排序的元素。   
       当SORT命令使用了STORE选项时,命令会将排序结果集保存到指定的键里面。   
       除了GET选项之外,调整选项的摆放位置不会影响SORT命令的排序结果。   
       第22章:二进制位数组   
       Redis使用SDS来保存位数组。   
       SDS使用逆序来保存位数组,这种保存顺序简化了SETBIT命令的实现,使得SETBIT命令可以在不移动现有二进制位的情况下,对位数组进行空间扩展。   
       BITCOUNT命令使用了查表算法和variable-precision SWAR算法来优化命令的执行效率。   
       BITOP命令的所有操作都使用C语言内置的位操作来实现。   
       第23章:慢查询日志   
       客户端可以通过执行MONITOR命令,将客户端转换为监视器,接收并打印服务器处理的每个命令请求的相关信息。   
       当一个客户端从普通客户端变为监视器时,该客户端的REDIS_MONITOR标识会被打开。   
       服务器将所有监视器都记录在monitors链表中。   
       每次处理命令请求时,服务器都会遍历monitors链表,将相关信息发送给监视器。   
  
查看16道真题和解析

影石Insta360公司氛围 449人发布