1. Redis是什么?

Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。和Memcached类似,它支持存储的value类型相对更多。继承了Memcached的优势将数据缓存到内存中提高读取性能,同时Redis还周期性的将数据追加到磁盘上做永久的存储。

2. Redis的特点是什么?

  1. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
  2. Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
  3. Redis支持数据的备份,即master-slave模式(主从)的数据备份。

3. Redis牛逼在哪里?

1.性能极高

Redis能读的速度是110000次/s,写的速度是81000次/s 。(官方的bench-mark数据)。

2.丰富的数据类型

redis提供五种数据类型:string,hash,list,set及zset(sorted set)。

3.原子性(Atomicity)

Redis的所有操作都是原子性的,同时Redis还支持对几个操作全并后的原子性执行。

4.丰富的特性

Redis还支持 publish/subscribe, 通知, key 过期等等特性。

4. Redis适用于什么场景?

1.取最新N个数据的操作。
2.排行榜应用,取TOP N操作。
3.需要精准设定过期时间的应用。
4.计数器应用。
5.Uniq操作,获取某段时间所有数据排重值。
6.实时系统,反垃圾系统。
7.Pub/Sub构建实时消息系统。
8.构建队列系统。
9.缓存。

本文总结

我们做一下总结:Redis是开源免费的,支持多语言API的、类型丰富、高性能、原子性、可持久化的KV系统。我们将使用Java API作为讲解示例。