redis特性
2021-01-22 本文已影响0人
杂记_
Redis全称是Remote Dictionary Server
速度快
- 官方给出的数字是读写性能可以达到10万/秒
- Redis的所有数据都是存放在内存中的
- Redis是用C语言实现的
- Redis使用了单线程架构,预防了多线程可能产生的竞争问题
基于键值对的数据结构服务器
- Redis主要提供了5种数据结构:字符串、哈希、列表、集合、有序集合,同时在字符串的基础之上演变出了位图(Bitmaps)和Hyper-LogLog两种数据结构。
丰富的功能
除了5中数据结构,Redis还提供了许多额外的功能:
- 提供了键过期功能,可以用来实现缓存
- 提供了发布订阅功能,可以用来实现消息系统
- 支持Lua脚本功能,可以利用Lua创造出新的Redis命令
- 提供了简单的事务功能,可以利用Lua创造出新的Redis命令
- 提供了流水线(Pipeline)功能,这样客户端能将一批命令一次性传到Redis,减少了网络的开销。
简单稳定
- 代码量相对少
- 不需要依赖操作系统中的类库
- Redis自己实现了事件处理的相关功能
- 作者维护的上千个Redis为例,没有出现过因为Redis自身bug而宕机的情况
客户端语言多
- Java、PHP、Python、C、C++、Nodejs
持久化
- RDB、AOF
主从复制
高可用和分布式
- Redis从2.8开始正式提供了Redis Sentinel
- Redis从3.0开始正式提供了Redis Cluster,它是Redis真正的分布式实现,提供了高可用、读写和容量的扩展性。
Redis可以做什么
- 缓存
- 排行榜系统
- 计数器
- 社交网络
-- 赞/踩、粉丝、共同好友/喜好、推送、下拉刷新等是社交网站的必备功能,由于社交网站访问量通常比较大,而且传统的关系型数据不太适合保存这种类型的数据,Redis提供的数据结构可以相对比较容易地实现这些功能。 - 消息队列系统
-- 订阅功能和阻塞队列
Redis不可以做什么
站在数据规模和数据冷热的角度来进行分析
- 数据量太大,则不适合用Redis存储
- 冷数据需要存储在Redis,热数据存储在Redis可以加速读写,也可以减轻后端存储的负载