Redis学习笔记—Redis特性

速度快

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真正的分布式实现,提供了高可用、读写和容量的扩展性。