速度快
redis数据存放在内存中;
C语言实现的redis,C语言是距离操作系统最近的语言;
采用单线程架构,预防多线程可能产生的竞争问题。
基于键值对的数据结构服务器
Redis支持五种数据类型:字符串类型(string),散列类型(hash),列表类型(list),集合类型(set),有序集合类型(zset)。
丰富的功能
提供了键过期功能,可以用来实现缓存;
提供了发布订阅功能,可以用来实现消息系统;
支持Lua脚本功能,可以利用Lua创造出新的Redis命令;
提供了简单的事务功能,能在一定程度上保证事务特性;
提供了流水线(Pipeline)功能,这样客户端能将一批命令一次性传到Redis,减少了网络的开销。
简单稳定
源码量少;其次Redis使用单线程模型,这样不仅使得Redis服务端处理模型变得简单,而且也使得客户端开发变得简单。最后,Redis不需要依赖于操作系统中的类库(例如Memcache需要依赖libevent这样的系统类库),Redis自己实现了事件处理的相关功能。
客户端语言多
支持几乎所有主流语言使用,例如Java、PHP、Python、C、C++、Nodejs等。
持久化
Redis提供了两种持久化方式:RDB和AOF。
主从复制
Redis提供了复制功能,实现了多个相同数据的Redis副本,复制功能是分布式Redis的基础。
高可用和分布式
Redis从2.8版本正式提供了高可用实现Redis Sentinel,它能够保证Redis节点的故障发现和故障自动转移。Redis从3.0版本正式提供了分布式实现Redis Cluster,它是Redis真正的分布式实现,提供了高可用、读写和容量的扩展性。