1.了解Redis与其应用场景(理解)
问题的出现:
常见现象:春运时12306网页崩溃,双十一淘宝和京东连连卡顿…
分析原因特征:大量用户同时访问同一数据,即海量数据和高并发。
根本原因:关系型数据库
性能瓶颈:磁盘IO性能低下。数据交换:CPU—>cache—>内存—>硬盘,数据一层层传递导致性能低下。
扩展瓶颈:数据关系复杂,扩展性差,不便于大规模集群。在关系型数据库中,常常一张表需要关联多张表,错综复杂的关系使得数据牵一发而动全身,导致数据不便于扩展。
解决思路:
- 降低磁盘IO次数,越低越好——将数据存储在内存
- 去除数据间关系,越简单越好——不存储数据关系,仅存储数据
也就是,Nosql。
NoSql:
NoSql:即Not-Only SQL(泛指非关系型数据库),作为关系型数据库的补充。
作用:应对基于海量用户和海量数据前提下的数据处理问题。
特征(相比较于关系型数据库):
- 可扩容,可伸缩
- 大数据量下高性能
- 灵活的数据模型
- 高可用
常见的NoSql模型:Redis、memcache、HBase、MongoDB
应用场景:数据库存储固定的基本数据,其余类型的数据根据其特征存放在不同的地方,一起对外提供服务。
Redis
- 概念:Redis(Remote Dictionary Server),即远程字典服务,是用C语言开发的一个开源的高性能键值对(key-value)数据库。
- 特征:
- 数据间没有必然的联系
- 内部采用单线程机制进行工作
- 高性能。官方提供测试数据,50个并发执行100000个请求,读的速度是110000次/s,写的速度是81000次/s。
- 多数据类型支持:字符串(string)、列表(list)、散列(hash)、集合(set)、有序集合(sorted_set)。
- 持久化支持。Redis可以进行灾难性恢复,比如突然断电的情况。通过将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用来保证数据的可恢复。
- 应用场景:
- 为热点数据加速查询(主要应用场景),如热点商品、热点新闻、热点资讯、推广类等高访问量信息等。
- 任务队列,如秒杀、抢购、购票排队等。
- 即时信息查询,如各位排行榜、各类网站访问统计、公交到站信息、在线人数等。
- 时效性信息控制,如验证码控制(比如验证码五分钟之内有效)、投票控制等。
- 分布式数据共享,如分布式集群架构中的session分离。
- 消息队列。
- 分布式锁。
1.了解Redis与其应用场景(理解)相关推荐
- redis的使用场景和基本数据类型
一:redis使用的场景 redis是一个高性能的NoSQL数据库,特点是高性能,持久存储,适应高并发的应用场景. 下面看看它的使用场景 1.取最新N个数据的操作 比如取网站的最新文章,通过下面方式, ...
- Redis源码-Set:Redis Set存储原理、Redis Set集合操作命令、Redis Set两种存储底层编码intset+hashtable、Redis Set应用场景
Redis源码-Set:Redis Set存储原理.Redis Set集合操作命令.Redis Set两种存储底层编码intset+hashtable.Redis Set应用场景 Redis数据类型 ...
- java基础巩固-宇宙第一AiYWM:为了维持生计,Redis基础Part6(Redis的应用场景、Redis是单线程的速度还快、Redis线程模型:Reactor模式、事件、发布订阅、管道)~整起
PART1-1:为什么Redis是单线程的 Redis单线程是指: Redis的网络IO和键值对读写是由一个线程来完成的.这也是 Redis 对外提供键值存储服务的主要流程.Redis的其他功能,比如 ...
- Redis源码-ZSet:Redis ZSet存储原理、Redis ZSet命令、 Redis ZSet两种存储底层编码ziplist/dict+skiplist、Redis ZSet应用场景
Redis源码-ZSet:Redis ZSet存储原理.Redis ZSet命令. Redis ZSet两种存储底层编码ziplist/dict+skiplist.Redis ZSet应用场景 Red ...
- 性价比超高:苹果发布了新数据集,助力室内场景理解
作者:刘媛媛 来源:数据实战派 前言 计算机视觉界一直渴望能够找到一种方法,让计算机和人们都能够理解室内场景的复杂性. 对于许多基本的场景理解任务,很难或不可能从真实图像中获得每像素地面实况标签. 一 ...
- 基于全局场景背景图和关系优化的全景3D场景理解(ICCV 2021)
DeepPanoContext: 基于全局场景背景图和关系优化的全景3D场景理解(ICCV 2021) 论文标题:DeepPanoContext: Panoramic 3D Scene Underst ...
- 继Facebook开源PyTorch3D后,谷歌开源TensorFlow 3D场景理解库
来源:机器之心本文约2000字,建议阅读5分钟谷歌于近日开源了一个基于 TF 框架的高度模块化和高效处理库 TensorFlow 3D. 继 2020 年初 Facebook 开源基于 PyTorch ...
- 李飞飞:人工智能应用广泛 但场景理解不如2岁孩子
"我看到了人工智能正在经历的历史时刻,那就是它已经走出实验室进入了产业应用阶段."全球人工智能领域著名华人专家李飞飞近日在北京接受新华社记者专访时说. 李飞飞是美国斯坦福大学人工智 ...
- 大容量类 Redis 存储的场景补充-pika
2019独角兽企业重金招聘Python工程师标准>>> 导读 我们在<大容量类 Redis 存储 - 有关 pika 的一切>里介绍过pika的诞生.pika的特点.pi ...
- 模拟问路场景理解递归
递归:函数内部调用自己 1 # TODO:模拟问路场景理解递归 2 person_list = ['chen', 'wang', 'li', 'liu'] 3 def say_way(person_l ...
最新文章
- LeetCode 657 : Robot Return to Origin
- Java并发:volatile内存可见性和指令重排
- PC-飞起来!我的Windows XP——五步快速优化Windows XP
- 《乌合之众》读书笔记(part2)--打动群体心灵的,是传奇中的英雄,而绝非现实中的英雄本身
- gcc -E 产生预编译后的文件
- 我那么拼命,为什么还会被裁掉?
- python自动化测试脚本可以测php吗_python unittest实现api自动化测试_python
- QT中QTableWidget清空或删除内容功能
- html 滑动导航效果,jQuery实现的滑块滑动导航效果示例
- x265源码流程分析
- 数字货币钱包 - 助记词 及 HD 钱包密钥原理
- 求助计算机程序员,程序员用代码求救:几近绝望时竟是老本行救了他
- 「 OFFICE 」将Excel的sheet拆分成独立文件的方法
- 号外:Axure导入有了!思维导图也正式上线了!
- 【Python实用工具】速来!!一篇文章十分钟教你如何使用Python第三方库basemap进行地图绘制
- 软件的性能指标及评估方法
- [LabVIEW应用]Labview如何将PC机和仪器设备连接到一起
- ParaView-2
- 计算机控制继电器电源,最疯狂DIY 用数千继电器自制8位电脑!
- 雷锋网特约专访3GUU市场总监刘谢舒