从官方文档看Redis

一.核心能力

Redis

1.In-memory data structures 内存数据结构

Redis以"键值对" 的方式来存储数据, 是一种"非关系型数据库"

ps: MySQL以"表"的方式来存储数据, 是一种"关系型数据库"

2.Programmability 可编程性

Redis可以用脚本(Lua)来执行一些操作  (也可以直接执行一些简单交互式命令)

3.Extensibility 可扩展性

通过 C, C++, Rust这几个语言来编写Redis扩展

很好理解~就是虽然有很好用的功能,但是还是不合心意~那就自己搞出一个更匹配的咯

4.Persistence 持久性

Redis存在内存上~但是呢,数据很容易丢吖~比如突然程序关闭什么的

所以,Redis在硬盘上也存了一份数据, 内存为主,硬盘为辅~~ 若果真没了,就拿硬盘的数据顶上

5.Clustering 集群

水平可扩展性~

我们说了~Redis存内存上,但是内存空间小啊~引入了分布式,多台主机~~所以在多个主机部署多个Redis节点,每个节点存一部分数据(yep,是很像我们之前说的分库分表~)

6.High availability 高可用性

或者说备份~~就是,结合一下4,丢了内存主数据,就让硬盘从数据直接顶上 -> 系统可用性提升

二.应用场景

这个也可以说是,展开说说Redis用来干嘛的~~比如,我们上篇文章谈到的,用为数据库,缓存,消息队列

1.Real-time data store 实时数据存储

就是相当于一个低延迟和高吞吐量的数据库咯~~比如搜索这方面~响应要很快(结合核心功能想)~就可以用Redis

敲黑板~~这里的Redis要存所有数据,不可以随便丢失数据

2.Caching & session storage 缓存和会话存储

会话缓存-> 我们之前谈这个就要说说 cookie,session~ 有了他们才能确认身份,不重复进行一些验证操作

但是,现在搞成了分布式,多台应用是服务器~谁知道负载因子把用户请求分配到哪台上?这就说明 , 每一次都要验证->天啊,我已经烦躁了,但是我却没遇到这种情况 所以,必然有了解决方案的!

i)让负载因子把同一个用户请求,打在同一个机器上(不能利用之前说的"轮询"了, 要用useId 比如~五台应用服务器,那就%5 根据余数看,扔哪台)

ii)用Redis, 将这些会话数据放在一台独立机器上存储~~ 这样应用服务器就可以再去这上面找咯~

缓存->辅助MySQL, 因为它慢 so我们利用二八原则(就是数据很多,但高频需要之占十分之二), 将那十分之二存Redis上~

敲黑板~~这里的Redis只是一个辅助加速,丢了也无所谓,因为MySQL里面存了所有数据

3.Streaming & messaging 流媒体和消息传递

就是它的初心啦~消息队列(可惜,它火不是因为这个~~, 毕竟优秀的消息队列很多~比如RabbitMQ, Kafka....)

消息队列 =>实现: 生产者消费者模型 => 好处: 解耦合, 削峰填谷(不易因为抗压不行而崩溃~~这个我介绍过的~)

三.Redis为什么快

okkk~~说完这几个 其实还有一个问题 就是 Redis快! 那具体我们只知道是因为在内存,so 还有没有别的原因?

1.核心功能都是简单逻辑 (就是存个数据)(不像MySQL,又是外键,又是索引........)

2.使用单线程(逻辑简单~so也不占太多CPU->不用多线程反而快了,节省一些开销)

3.IO多路复用(epoll) (一个线程管多个socket)

四.小结

我们现在已经了解了

Redis 内存数据 很快 分布式 和新特性 应用方面

话说得好 手下见真章 我们去用用~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值