目录
高可用(High Availability)和分布式 (Distributed):
前言
Redis是一种基于键值对(key-value)的NoSQL数据库,与很多键值对数据库不同的是,Redis中的值可以由字符串、哈希、列表、集合、有序集合、位图等多种数据结构和算法组成,能够满足特别多的使用场景。又因为Redis会将所有数据都放在内存中,所以它的读写性能非常惊人。不仅于此,Redis还可以将内存的数据利用快照和日志的形式保存到硬盘上,在发生类似断电宕机的时候,内存中的数据不会丢失。
Redis的诞生
2008年,Redis的作者Salvatore Sanfilipp在开发一个叫做LLOOGG的网站的时候,需要一个高性能的队列功能,最开始他使用的是MySQL,但是后来发现怎么优化SQL语句,网站的性能都上不去,于是自己打造了一个专属的数据库,这就是Redis的前身。
Redis特性
一下是关于Redis的8个重要特性:
速度快:
正常情况下,Redis执行命令的速度非常快,官网给出的读写性能可以达到10w条 / 秒
- Redis的所有数据都是存放在内存中的
- Redis是用C语言实现的,距离OS更近,执行速度相对更快点
- Redis使用了单线程,预防了多线程会产生的竞争问题
- Redis在6.0版本引入了多线程机制,但主要也是在处理网络IO,并不涉及数据命令
层级 | 速度 |
---|---|
L1 cache reference | 0.5ns |
Branch mispredict | 5ns |
L2 cache reference | 7ns |
Mutex lock/unlock | 25ns |
Main memory reference | 100ns |
Compress 1 K byte |