Redis中间件的介绍

Redis是什么?,优势在哪?

redis的个人学习笔记。

Redis是什么?

他它一个开源免费,遵守BSD协议,高性能的键值对数据库,支持多种数据结构,是业界流行的nosql数据库,被誉为数据结构服务器。

Redis有什么优势?

1、速度快;2、支持多种数据结构;3、功能丰富;4、服务间简单;5、客户端支持语言较多;6、支持持久化;7、主从复制、高可用、分布式;

1、为什么速度快?

首先是使用C语言实现,更贴近操作系统;

其次是数据都存在与内存中,操作数据的效率高;

再次是单线程,规避的线程切换的开销及规避多线程竞争问题;

最后是redis采用epoll,非阻塞I/O,不在网络上浪费时间;(多路复用)

epoll是什么?使用它是为了解决什么问题(瓶颈)?

epoll技术是多路复用方式中的一种,主要是解决redis顺序线性执行读写操作导致阻塞的问题。“多路”指的是多个网络连接,“复用”指的使用同一个线程。采用多路I/O复用技术可以让单线程高效的处理多个连接请求,目的是尽量减少网络I/O的时间消耗。

多路复用涉及如下几个点:

上下文切换、用户态复制到内核态(消耗cpu资源)

相比poll、select多路复用技术epoll的优势

总结:epoll:无并发限制,提效率(只关注活着的线程,不关注总数),无内存拷贝(采用了“共享内存”)。

2、支持多种数据结构

String(字符串)、Hash(哈希)、List(列表)、Set(集合)、Zset(有序集合)、Bitmaps(位图)

HyperLogLog(不精准去重计数器)、GEO(地理信息定位)

3、功能丰富

1、键过期设置

2、基于发布订阅的简单消息队列

3、通过LUA创建新命令,具有原子性

4、Pipeline(批处理)功能,减少网络开销

4、服务简单

代码优雅,花较少的时间就可以吃下

采用单线程模型,减少资源竞争、规高并发问题

不依赖操作系统类库,自己实现了epoll多路复用

5、客户端语言支持较多:如php、java、C等

6、支持持久化:RDB、AOF

7、主从复制、高可用、分布式

Redis使用场景是哪些?

缓存、排行榜(List/Zset)、计数器/限速器(统计播放数据/浏览量/在线人等)、好友关系(点赞/共同好友)、简单的消息队列(订阅发布/阻塞队列)、session服务器

Redis不适用哪些情景?

数量太大不适合使用(受限于硬件的内存资源)

数据访问频率太低不使用(没必要使用)

 

纯个人理解,如有问题请各位大佬指出,本人正在梳理技术知识图谱。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值