• redis的五大数据类型实现原理


    1. 字符串(string)

    1)value的数据结构(数组)

    1. 字符串value数据结构类似于数组,采用与分配容易空间来减少内存频繁分配

    2. 当字符串长度小于1M时,扩容就是加倍现有空间

    3. 如果字符串长度操作1M时,扩容时最多扩容1M空间,字符串最大长度为 512M

    2)字符串的使用场景(缓存)

    1. 字符串一个常见的用途是缓存用户信息,我们将用户信息使用JSON序列化成字符串

    2. 取用户信息时会经过一次反序列化的过程

    2. list(列表)

    1)value的数据结构(双向链表)

    1. 列表的数据结构是双向链表,这意味着插入和删除的时间复杂度是0(1),索引的时间复杂度位0(n)

    2. 当列表弹出最后一个元素后,该数据结构会被自动删除,内存被回手

    2)列表的使用场景(队列、栈)

    3. hash(字典)

    1)value的数据结构(HashMap)

    1. redis中的字典也是HashMap(数组+列表)的二维结构

    2. 不同的是redis的字典的值只能是字符串

    2)hash的使用场景(缓存)

    1. hash可以用来缓存用户信息,与字符串一次性全部序列化整个对象不同,hash可以对每个字段进行单独存储

    2. 这样可以部分获取用户信息,节约网络流量

    3. hash也有缺点,hash结构的存储消耗要高于单个字符串

  • 相关阅读:
    【python刷题】前缀和
    【python刷题】数组链表去重
    【python刷题】滑动窗口法
    【python刷题】二分查找
    【python刷题】广度优先搜索(BFS)
    【python刷题】回溯算法(深度优先搜索DFS)
    机器学习十讲-第三讲分类
    数学知识-质数&约数
    树与图的DFS与BFS
    桥梁保护与监控-开发进度(二)
  • 原文地址:https://www.cnblogs.com/ngngng/p/13880843.html
Copyright © 2020-2023  润新知