全称:REmote DIctionary Server
Redis是一种key-value形式的NoSQL内存数据库,由ANSI C编写,遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
Redis最大的特性是它会将所有数据都放在内存中,所以读写速度性能非常好。当然,它也支持将内存中的数据以快照和日志的形式持久化到硬盘,这样即使在断电、机器故障等异常情况发生时数据也不会丢失,Redis能从硬盘中恢复快照数据到内存中。
官网:https://redis.io/\ 中文:http://www.redis.cn/\ Github:https://github.com/antirez/redis
1、性能高,速度快
Redis命令执行速度非常快,官方给出的读写性能可以达到10W/秒。为什么会如此之快呢?有以下几个因素:
- 数据存储在内存中,直接与内存连接。
- 由相对底层的C语言实现,离操作系统更近。
- 实现源码很精湛,仅仅几万行代码,简单稳定。
- 使用了单线程模型,无多线程竞争、锁等问题。
2、丰富的数据结构
Redis与其他的内存数据库不同的是,Redis拥有丰富的数据类型,如字符串、哈希、列表、集合、有序集合等。正是因为Redis丰富的数据类型,所有它能应用的场景非常多。
3、丰富的特性
除了支持丰富的数据结构外,还支持以下高级功能。
- 支持键过期功能,可以用来实现定时缓存。
- 支持发布/订阅功能,可以有来实现消息队列。
- 支持事务功能,可以保证多条命令的事务性。
- 支持供管道功能,能够批量处理命令。
- 支持Lua脚本功能。
- 支持集群分片和数据复制功能。
- 支持内存数据持久化硬盘功能。
4、丰富的客户端
从官网给出的客户端列表可以看出,各种各种的语言都能接入到Redis,接入包括了所有的主流开发语言。
目前使用Redis的公司非常多,国内外都有很多重量级的公司在用。所以,现在学习Redis是大势所趋,学好Redis能为自己在日后的工作谋生中增加一个强有利的竞争手段。