Redis学习

1.相同数量级的数据,hash存储和zset存储内存占用情况

Redis简介

Redis是内存数据库,kv数据库,数据结果数据库;

内存数据库,说明数据都在内存中;非内存数据库,比如mysql,数据主要在磁盘中,部分热点数据在缓冲层中;

kv数据库,数据的组织方式,访问操作redis,通过key来索引value从而操作redis;

数据结构数据库,redis提供丰富的高效的数据结构供客户操作;redis中的value包含string,list,hash,set,zset等多种数据结构。

image-20221227120926552

image-20221227121140177

image-20221227121523233

image-20221227121802863

image-20221227121954733

image-20221227122353417

跳表:

链表的基础上,通过增加层级的方式,增加查找的效率,一般的链表查找效率是O(n)

理想跳表结构是隔一个节点增加一层,然后在删除节点时需要划分很多资源来维护这个结构。

解决方法:使用概率,从一个节点出发,每次插入的时候,按照概率生成层级,如1/2。

数学期望来说,这样趋向于理想跳表结构,类似为二分查找的效率O(logn)

当然概率的情况只有当大量数据的时候效率才会趋近O(logn)

image-20221227134635196

实际上在Redis中,概率取的是1/4,节点层数不超过32层。

image-20221227135002086

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2024 lk
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信