首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    基于内存的分布式NoSQL数据库Redis(二)数据结构与通用命令

    Key:StringValue类型Value值应用场景pv_20200101String10000一般用于存储单个数据指标的结果person001Hashname:laoer age : 20 sex female用于存储整个对象所有属性值uvList{100,200,300,100,600}有序允许重复的集合,每天获取最后一个值uv_20200101Set{userid1,userid2,userid3,userid4……}无序且不重复的集合,直接通过长度得到UVtop10_productZSet【score,element】{10000-牙膏,9999-玩具,9998-电视……}有序不可重复的集合,统计TopNuser_filterBitMap{0101010101010000000011010}将一个字符串构建位,通过0和1来标记每一位product_20200101HypeLogLog{productid1,id2……}类似于Set集合,底层实现原理不一样,数据量大的情况下,性能会更好,结果可能存在一定的误差

    02

    深入Go的Map使用和实现原理

    线性探测,字面意思就是按照顺序来,从冲突的下标处开始往后探测,到达数组末尾时,从数组开始处探测,直到找到一个空位置存储这个key,当数组都找不到的情况下回扩容(事实上当数组容量快满的时候就会扩容了);查找某一个key的时候,找到key对应的下标,比较key是否相等,如果相等直接取出来,否则按照顺寻探测直到碰到一个空位置,说明key不存在。如下图:首先存储key=xiaoming在下标0处,当存储key=xiaowang时,hash冲突了,按照线性探测,存储在下标1处,(红色的线是冲突或者下标已经被占用了) 再者key=xiaozhao存储在下标4处,当存储key=xiaoliu是,hash冲突了,按照线性探测,从头开始,存储在下标2处 (黄色的是冲突或者下标已经被占用了)

    09
    领券