redis (REmote DIctionary Server)
是什么
Redis是一个在内存中的键值数据库,通常称为数据结构服务器。Redis和其他键值数据库之间的主要区别之一是Redis存储和操作高级数据类型的能力。这些数据类型是大多数开发人员熟悉的基本数据结构(列表,映射,集合和排序集)。
主要特点
- 高级数据结构 -为值提供五种可能的数据类型:字符串,列表,集合,哈希和有序集合。提供了这些数据类型独有的操作,并且具有记录良好的时间复杂度。
- 高性能 - 由于其内存特性,项目维护者将复杂性保持在最低限度的承诺以及基于事件的编程模型,Redis在读写操作方面具有出色的性能。
- 没有依赖关系的轻量级 - 用ANSIC编写,没有外部依赖关系。适用于所有POSIX环境。Windows不受官方支持,但Microsoft提供了实验性版本。
- 高可用性 -内置支持异步,非阻塞,主/从复制,以确保数据的高可用性。目前有一种名为RedisSentinel的高可用性解决方案目前可以使用,但仍被视为正在进行的工作
常见用例
- 缓存 -由于其高性能,当读写操作量超过传统数据库的功能时,开发人员已转向Redis。由于Redis能够轻松地将数据持久保存到磁盘,因此它是传统memcached缓存解决方案的绝佳替代方案。
- 发布和订阅 -从版本2.0开始,Redis提供了使用发布/订阅消息传递范例分发数据的功能。由于Redis的简单性和性能,一些组织已经迁移到Redis并远离其他消息排队系统(即RabbitMQ,zeromq)。
- 队列 - 像Resque这样的项目使用Redis作为排队后台作业的后端。
- 计数器 -诸如HINCRBY之类的原子命令允许计数器的简单和线程保存实现。创建计数器就像确定密钥的名称和发出HINCRBY命令一样简单。在递增之前无需读取数据,并且没有要更新的数据库模式。由于这些是原子操作,因此从多个应用程序服务器访问时,计数器将保持一致性。