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 incrby 1000,一次取1000个。
  • incr限流
  • 位操作

Redis核心配置

posted @ 2020-07-15 15:10  挣扎一下  阅读(140)  评论(0编辑  收藏  举报