企业展示型网站,网页设计与制作的模板,国际外贸网站建设,网站推广策划报告Redis特性介绍
In-memory data structrues
众所周知#xff0c;MySQL是一种关系型数据库#xff0c;其通过表的结构存储数据#xff0c;就类似于建立了一个excel表格来存储数据。但是像视频这类数据并不适合存储在关系型数据库中#xff0c;因此存在非关系型数据库——通…Redis特性介绍
In-memory data structrues
众所周知MySQL是一种关系型数据库其通过表的结构存储数据就类似于建立了一个excel表格来存储数据。但是像视频这类数据并不适合存储在关系型数据库中因此存在非关系型数据库——通过键值对存储数据
redis中存储的key都是string而value可以是stringhasheslistssetssorted setsstreams等等
Programmability
可以通过基础的交互式命令操作redis也可以通过脚本Lua来批量的进行操作
Extensibility
redis提供了一组API让我们可以在redis原有的功能上进行扩展C,C,Rust,例如让redis支持更多的数据结构更多的命令
Persistence
Redis将数据存储在内存中这保证了能够更快的获取数据但是内存中的数据在系统重启后就会消失因此Redis还在硬盘中备份了内存中的内容保证数据的持久性
Clustering
Redis支持集群也就是水平扩展类似于分库分表多个服务器中部署多个Redis节点让数据分散存储
High availability
Redis支持主从结构从节点是主节点的备份当主节点有问题时从节点可以替代主节点继续工作因此Redis是高可用的
Redis读写数据迅速的原因
Redis的数据存储在内存中读写内存比读写硬盘快好几个数量级Redis的核心功能实现的比较简单没有关系型数据库那么复杂的外键等等约束因此读写数据迅速Redis通过IO多路复用的方式处理网络请求使用一个线程管理多个socketRedis使用单线程模型减少了线程竞争的开销Redis是用C语言开发的
Redis使用场景
Real-time data store
将Redis当作数据库存储数据实时性要求较高高吞吐的场景。例如搜索引擎需要较快的响应速度这时就需要将需要检索的数据存储在内存中
Caching session storage
由于计算机中的数据也存在二八原则80%的用户需要的是20%的热点数据因此可以将Redis中存储这20%的热点数据作为缓存
而要理解session storage首先要理解下面这个概念
http中的cookie是用来实现用户信息的保存的其需要session的配合完成。服务器这边存储了用户的数据而cookie是让浏览器存储用户的身份标识sessionId
但如果应用了分布式系统存在多个应用服务器。与用户登录时可能将用户会话信息存储在a服务器中但是用户下次访问请求可能发送到c服务器中而c服务器中没有用户的会话信息 解决方法
负载均衡器始终将同一个用户的请求发送到同一台服务器中将会话信息单独存储在一台服务器中并且当服务器重启后会话信息不能丢失
显然Redis就可以负责存储分布式系统下的用户的会话信息
Streaming messaging
Redis可以作为消息队列是一个网络版本的生产者消费者模型消息队列可以解耦合削峰填谷