Redis

Redis 知识量:6 - 20 - 96

1.1 Redis快速入门><

Redis简介- 1.1.1 -

Redis(Remote Dictionary Server,远程字典服务)是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。它由意大利人Salvatore Sanfilippo(网名:antirez)开发,并且从2010年3月15日起,Redis的开发工作由VMware主持,而从2013年5月开始,其开发由Pivotal赞助。

Redis本质上是一个Key-Value类型的内存数据库,与Memcached类似,但Redis支持的存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set,有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,Redis支持各种不同方式的排序。为了保证效率,数据都是缓存在内存中,这使得Redis可执行单层树复制。同时,Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。

Redis的性能非常出色,每秒可以处理超过10万次读写操作,是已知性能最快的Key-Value DB。它还可以用作数据库、缓存和消息中介,支持如事务、发布订阅、Lua脚本、LRU驱动事件、自动故障转移等高级功能。此外,Redis支持数据的备份,即master-slave模式的数据备份。

Redis特性- 1.1.2 -

Redis数据库具有以下特性:

  • 高效性:Redis在内存中存储数据,这使得它的读取和写入速度非常快,而且可以扩展到多个节点。

  • 多样性:Redis支持多种不同的数据结构(字符串、哈希表、列表、集合、有序集合等),这使得它能够应用于各种不同的场景。

  • 灵活性:Redis提供了丰富的API,使得它可以与各种不同的编程语言和技术框架集成。

  • 可扩展性:Redis可以水平扩展到多个节点,这使得它非常适合处理高并发的应用程序。

  • 持久性:Redis可以将数据持久化到磁盘上,这使得它能够在发生故障时恢复数据。

  • 主从复制:Redis支持主从复制,主服务器(master)执行添加、修改、删除,从服务器执行查询,提供高可用性的支持。

  • 高可用及分布式:Redis-Sentinel(v2.8)支持高可用,Redis-Cluster(v3.0)支持分布式。

  • 功能丰富:Redis支持事务、流水线、发布/订阅、消息队列等功能。

  • 源码简单:Redis的源码约23000行C语言源代码,简单易懂。

由于这些特性,Redis在很多不同的应用场景中都有广泛的应用,例如缓存、搜索引擎、消息队列等。