初识Redis | 青训营

89 阅读2分钟

Redis的特性

一、速度快

因为Redis是将数据储存在内存中进行读写,并且Redis能够单线程处理所有操作命令,如果想充分利用CPU资源,可以开启多个Redis实例,快速完成任务。

二、数据持久化

Redis可以通过RDB和AOF两种方式将数据持久化保存到硬盘上。

三、可使用多种数据结构

Redis支持五种数据结构,即String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(Short Set,有序集合)。
当Redis使用Hash时会出现哈希冲突的问题,为了解决这个问题,Redis使用链式哈希,但随着数据的增多,哈希冲突链也会随之增长,导致耗时增加,这对“追求快”的Redis是无法接受的。所以,Redis会对哈希表进行rehash操作。
rehash:将ht[0]中的数据全部迁移到ht[1]中。数据量小的场景下直接将ht[0]拷贝到ht[1]速度较快。数据量大的场景会明显阻塞用户请求。
渐进式rehash:为避免上述问题,Redis会使用渐进式rehash操作。基本原理是每次用户访问时都会迁移少量数据,将整个迁移过程平摊到所有的访问用户请求过程中。

四、功能丰富

Redis除了拥有多种数据结构,也提供了许多额外的功能。

1.提供了键过期功能,可以用来实现缓存。
2.提供发布订阅功能,可以用来实现消息系统。
3.支持lua脚本功能,可以利用lua创造出新的Redis命令。
4.提供了简单的事务功能,能在一定程度上保证事务特性。
5.提供了流水线功能,这样客户端能一批命令一次传到Redis,减少网络开销。

五、简单稳定

1.Redis的源码很少。早期Redis版本只有约2万行,后经过更新增至5万行,这相对其他很多数据库源代码少太多了。
2.Redis不需要依赖操作系统的其他类库。
3.Redis使用单线程模型。

以上三点使得Redis服务器端处理模型简单且运行稳定。