Redis
存储介质(内存),访问模式(HashTable),网络模型(),线程模型()
HashTable Entry<K,V> index=hash(key)%arr.length
ReHash
1、主动 渐进式Rehash,访问时候搬迁
2、被动
5大类型
String
char数组 char[] str=“abdc\0” 使用\0来标识字符串结尾
SDS simple dynaminc String
len,alloc char[]=
RedisDB ={dict id}
dict={ dictType(Hash函数,hash冲突处理),arr[2]}
dichht={arr[len],used,size}
DictEntry={key, value,next}
RedisObject={type,encode} type_list=[string,list,hash,set,zset]
type
String sds MAX_SIZE=512M
list DoubleLinkedList
hash HashMap
set HashSet
zset SortedHashSet
encode = [string=[int,raw,embstr],list=[quickList(双端链表)],hash=[hastable,zipList(紧凑数据模拟双端链表)],set=[hashtable,intset],zset=[ziplist,skiplist]]
set key value
lpush key values
hset hashtable_name key1 value1
type 查看value的类型
rehashidx=-1 在rehash
网络模型,epoll,read模型