1.数据类型:字符串、哈希、列表、set、zset、geo、hypeloglog、bitmap
2.底层数据结构:dict,dictEntry,redsObject,sds
3.内存淘汰策略:一种是根据所有key进行淘汰(volatile),一种是根据过期时间进行淘汰(allkeys),最后一种是默认(noeviction),内存不足以容纳新写入数据时,新写入操作会报错,
volatile的策略又分lru、random(随机)、ttl(根据过期时间进行淘汰,越早过期的优先被淘汰),而allkeys则是lru,random
4.应用场景缓存、排行榜、计数器应用、共享Session、分布式锁、社交网络、消息队列、位操作
5.Redis提供了RDB和AOF两种持久化机制,RDB手动触发分为异步(save)和同步(bgsave),AOF存储客户端的操作指令,当aof文件过大时,会进行重写,在主从同步时,发送的是RDB文件,因为RDB文件是二进制文件,网络传输效率相对AOF文件较好,而且加载时,相对较快
6.redis高可用分为主从、哨兵和集群(Cluster),集群采用Hash Slot插槽算法,整个数据库被分为16384个slot(槽),每个进入Redis的键值对,根据key进行散列,分配到这16384插槽中的一个
7.字符串内部编码有3种,int(8字节长整型)、embstr(小于等于39字节字符串)、raw(大于39个字节字符串),如果存储数字的话,是用int类型的编码;如果存储非数字,小于等于39字节的字符串,是embstr;大于39个字节,则是raw编码
8.哈希内部编码:ziplist、hashtable,哈希类型元素个数小于512个,所有值小于64字节的话,使用ziplist编码,否则使用hashtable编码。
9.list内部编码:ziplist、linkedlist,如果列表的元素个数小于512个,列表每个元素的值都小于64字节(默认),使用ziplist编码,否则使用linkedlist编码
10.set内部编码:intset、hashtable,如果集合中的元素都是整数且元素个数小于512个,使用intset编码,否则使用hashtable编码
11.zset内部编码:ziplist、skplist(跳表),当有序集合的元素个数小于128个,每个元素的值小于64字节时,使用ziplist编码,否则使用skiplist(跳跃表)编码



