Redis 的介绍、优缺点、使用场景
Redis是什么: 开源的,基于键值的存储服务系统,支持多种数据类型,性能高,功能丰富
特性(主要有8个特性):
速度快:官方给出的结果是10W OPS,每秒10W的读写(为什么是10W,因为内存的相应时间是100纳秒-10万分之一秒)。数据存储在内存中;使用C语言开发;Redis使用单线程,减少上下文切换。本质原因是计算机存储介质的速度,内存比硬盘优几个数量级)。MemoryCache可以使用多核,性能上优于Redis。
持久化:Redis所有的数据保持在内存中,对数据的更新将异步地保存到磁盘上。断掉,宕机? RDB快照/AOF日志模式来确保。MemoryCache不提供持久化
多种数据结构:Redis提供字符串,HashTable, 链表,集合,有序集合;另外新版本的redis提供BitMaps位图,HyperLogLog超小内存唯一值计数,GEORedis3.2提供的地理位置定位。相比memocache只提供字符串的key-value结构
支持多种编程语言:Java,PHP,Ruby,Lua,Node
功能丰富: 发布订阅,支持Lua脚本,支持简单事务,支持pipline来提高客户端的并发效率
简单:单机核心代码23000行,让开发者容易吃透和定制化;不依赖外部库;单线程模型
主从复制:主服务器的数据可以同步到从服务器上,为高可用提供可能
高可用、分布式:2.8版本后提供Redis-Sentinel支持高可用;3.0版本支持分布式
典型应用场景:
缓存系统:缓存一些数据减少对数据库的访问,提高响应速度
计数器:类似微博的转发数,评论数,incr/decr的操作是原子性的不会出错
消息队列系统:发布订阅的模型,消息队列不是很强
排行榜: 提供的有序集合能提供排行版的功能,例如粉丝数,关注数
实时系统:利用位图实现布隆过滤器,秒杀等
最后更新于
这有帮助吗?