Redis是一个开源的支持BSD协议的高级的key-value 缓存和存储。因为Redis的keys能够是strings、hashes、lists、sets、sorted sets、bitmaps和hyperloglogs,它经常被认为是数据结构服务器。
Redis对很多操作都是原子性的,比如追加字符串、增加hash中的值、向链表中添加一个元素、计算集合的交集合集和差集、从一个有序集合中获取排在最前的元素。
为了获得突出的性能,Redis使用内存数据结构。依据不同的应用场景,有两种不同的方式将Redis中的数据进行持久化,第一种方式是每过一段时间将数据集dump到磁盘(dumping the dataset to disk),第二种方式是将每一条命令输出到log中(appending each command to a log)。当然,如果你只是需要一个特性丰富(feature-rich)、支持网络(networked)的内存(in-memory)Cache,可以选择禁止持久化。
Redis也支持主从模式的异步复制(master-slave asynchronous replication ),第一次会无阻塞的快速异步复制,当网络不好时,会自动重连并且每次异步复制部分数据。
其它的特性:
- Transactions
- Pub/Sub
- Lua scripting
- Keys with a limited time-to-live
- LRU eviction of keys
- Automatic failover
Redis支持多种编程语言。
Redis使用c编写而成,可以在绝大多数的POSIX系统比如Linux、 BSD、 OS X上运行。Linux和OS X是Redis最常部署的操作系统,目前对于Windows平台还没有官方的支持,但是Microsoft开发和维护了一个Win-64的可移植的版本。