1. Redis是什么?
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。和Memcached类似,它支持存储的value类型相对更多。继承了Memcached的优势将数据缓存到内存中提高读取性能,同时Redis还周期性的将数据追加到磁盘上做永久的存储。
2. Redis的特点是什么?
- Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用。
- Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
- 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作为讲解示例。