为什么高效:
1、完全基于内存,大多数请求都是内存操作,非常快速;
2、数据结构简单,操作简单;
3、采用单线程,避免了不必要的上下文切换和竞争条件,不存在多进程或者多线程的切换,不用考虑锁带来的性能消耗;
4、使用多路 I/O复用模型,非阻塞 IO
应用场景:
缓存(数据查询、热点数据、商品数据、短连接、新闻内容等。(最多使用)
单点登录SSO,session共享
任务队列(秒杀、抢购、12306等等)
数据过期处理(可以精确到毫秒)
网站访问排名…应用排行榜
网站访问统计
聊天在线好友列表
性能瓶颈
1、机器内存大小
内存大小关系到Redis存储的数据量
2、网络带宽
Redis客户端执行一条命令分为四个过程:发送命令、命令排队、命令执行、返回结果。
其中发送命令+返回结果这一过程被称为Round Trip Time(RTT 往返时间)
Redis的客户端和服务端可能部署在不同的机器上: 例如客户端在北京,Redis服务端在上海,两地直线距离约为1300公里,那么1次RTT时间=1300×2/(300000×2/3)=13毫秒(光在真空中传输速度为每秒30万公里,这里假设光纤为光速的2/3),那么客户端在1秒内大约只能执行80次左右的命令,这就和Redis的高并发高吞吐特性背道而驰啦。
所以一般情况下,都是就近部署!