Redis的一些事
Redis是什么
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统,常被用作消息中间件,缓存服务器,数据库等。
大家对redis的第一印象一定是小,而且快,官方曾做过回复:使用redis时,几乎不存在CPU成为瓶颈的问题,redis主要受限于内存与网络。
RESP(Redis Serialization Protocol)
redis的通讯协议是序列化协议,即通过RESP进行通讯,文本协议容易实现,解析快,人类可读,管道通信,一次可发送多条命令等待回复。底层采用的是TCP的连接方式,通过TCP进行数据传输,然后根据解析规则解析相应的信息,完成交互。但是较为浪费流量。
Redis这么快到底是如何储存数据的
redis使用键值对储存数据,之中的值包含5中类型:字符串、哈希、列表、集合、有序集合
如何储存:
redis是通过键值对储存的,所以每个键值对都有一个dictEntry,其中key储存于SDS(简单动态字符串)结构中。键值对的value储存于RedisObject中,RdisObject对象中的属性分别会指向value的类型、内存地址和编码等等。以上说的这些都是通过内存分配器jemalloc(不止这一种,jemalloc是redis默认的)分配内存进行储存的。
dictEntry:里面包含三个指针分别指向key、va