1.在内存中存储数据------通过数据结构(包括string hash list set等),对比MySQL(用表的方式存储数据------关系型数据库)
Redis是通过键值对来存储数据,key都是string,value可以是上面的数据结构,称为非关系型数据库。
2.可编程性
针对Redis,我们可以直接进行简单交互式命令来操作,也可以通过一些脚本来批量执行操作,并可带有一些逻辑。
3.可扩展性
可以在Redis原有的功能上进行拓展,其提供了一些API,可以用编程语言来编写扩展(动态链接库)
4.持久化
Redis是把数据在内存上存储,但内存的数据"易失"一旦进程退出/重启数据容易丢失,因此Redis还会再存一份到硬盘(辅)如果Redis重启,就会加载存放在硬盘的那份备用数据
5.支持集群
作为一个分布式系统的中间件,支持集群很关键
Redis存储数据量是有限的,一旦数据量过大,我们会引入多个主机进行存储,部署多个Redis节点,每个节点存储一部分。
6.高可用性(有备份)
Redis自身支持主从结构,从是主的备份。
7.快
为什么快?
数据在内存中,比访问硬盘快
Redis的核心功能都是比较简单的逻辑,处理简单
从网络角度来看,使用了多路转接IO方式(epoll),单线程管理多socket,处理高并发。
Redis使用的是单线程模型,减少了线程竞争开销