zoukankan      html  css  js  c++  java
  • Redis:基础

    Redis数据类型

    KV形式存储,KEY是String,最大容量512M,V有以下几种类型:

    • String:命令set,get;字符串,底层数据结构就是SDS
    • Hash:命令hset,hget;entry数量少的时候用ziplist(节省空间,实际上不是链表,放在连续的空间里,性能比哈希差一点,取头尾元素是常数时间),高的时候用hashtable。哈希表
    • List:命令lpush,lpop;底层用quicklist,双向链表,节点上是ziplist;有序集合,可以从左边加也可以从右边加
    • Set:命令:sadd,spop;无序集合;假如全是整数,用intset,非正数用hashtable,当整数超过512个时也会用hashtable(存key)
    • ZSet:命令:zadd,zrem;有序集合,基于score排序;元素个数低于128个且元素值小于64字节用ziplist存储;跳表+字典;跳表:利用level,给某些节点(随机生成)定义多层链表,越高层数量越小,从上往下查找,提高查询效率。

    这些类型底层都是一个redisObject

    SDS

    redis用c语言实现的simple dynamice string,可实现动态字符串,还存储了len长度,低于44个字节的时候是embstr(内存空间连续),大于44会变成raw(分配2次内存空间),对embstr的字符进行修改也会直接变成raw。

    Redis适用场景

    • 缓存
    • 分布式Session
    • 分布式锁
    • incr全局id
    • incr计数器
    • incr限流
    • 位操作
  • 相关阅读:
    Java并发Condition接口
    Java并发ReadWriteLock接口
    简述mapreduce的四个对象
    hadoop IO操作
    java 多线程笔记
    java 四种方式读取文件
    InputStream、InputStreamReader、BufferedReader
    java 自动拆箱与装箱(基本数据类型与引用类型)
    java 之equals与"=="的区别
    vmware搭建hadoop集群完整过程笔记
  • 原文地址:https://www.cnblogs.com/fcb-it/p/13305612.html
Copyright © 2011-2022 走看看