一、NoSQL  

现在互联网应用其中有两个特点:(1)海量用户(2)不可避免地高并发。常常因为这样,我们网站或者服务器将面临崩溃的风险。而多用户、高并发只是现象,究其根源,罪魁祸首就是关系型数据库,数据访问这一块出现了问题。在数据访问中,有哪些因素影响呢?

(1)性能瓶颈:磁盘IO性能低下;因为我们CPU的数据交换和缓存(Cache)做,Cache的数据交换和内存做,内存的数据交换和磁盘做,提供的基本数据基本都在硬盘上,一层一层传递,磁盘性能远达不到我们想要的要求;

(2)扩展瓶颈:数据库不仅是存数据,还要存数据之间的关系,常常数据间的关系比较错综复杂,也不便于大规模集群。

怎么解决?(1)降低磁盘IO,用内存存储解决(2)数据关系越简单越好,甚至不存储关系,只存储数据。这其中就包含一种理念:NoSQL。

什么是NoSQL呢?即Not-only SQL,泛指非关系型数据库,注意,它并不能替代关系型数据库,而是关系型数据库的补充。我们使用NoSQL的场景,常常也是为了应用于开篇提及的海量用户高并发的场景。

常见的NoSQL数据库有哪些呢?Redis,memcache,HBase,MongoDB。我们举一个电商的商品例子,来简单说明一下。比方说商品的基本信息,如名称、价格等,这种信息全局一份,也比较固定,首选肯定是MySQL;商品的附加信息,如商品详情,描述评论等,大段大段地文字,这种就推荐擅长文档处理地MongoDB;商品的图片,一般都会有专用的存储未知,我们放在分布式文件系统中;商品的检索,搜索关键字,推荐ES等;还有一种热点信息,这类信息可能随着时间会变,但是高频访问,这种推荐Redis、MongoDB、Tair等。

也就是说,我们对外访问的时候,可能就变成了这样:MySQL集群  -->  NoSQL集群 -->对外访问

二、Redis

2.1 什么是Redis?

Remote Dictionary Server,一个C语言编写的键值对(key-value)数据库。

2.2 主要特征

(1)数据间没有必然的关系;(2)单线程机制进行工作;(3)高性能;

(4)多数据类型支持,如string、hash,list,set,sorted_set等(后面专题会详细描述);

(5)持久化支持,主要进行数据灾难恢复(比方说机器断电了);

2.3 主要应用

(1)为热点数据做加速查询;(2)任务队列,比方说秒杀、抢购等;(3)即时信息查询,比方说排行榜、在线人数统计等;

(4)时效信息控制,如优惠券,验证码等;(5)分布式数据共享,如session分离;(6)分布式锁;(7)消息队列

2.4 以windows版本客户端学习启动为例

启动server:redis-server.exe redis.windows.conf

启动客户端:redis-cli.exe -p 6379

专题一:why redis ?的更多相关文章

  1. [你必须知道的NOSQL系列]专题二:Redis快速入门

    一.前言 在前一篇博文介绍了MongoDB基本操作,本来打算这篇博文继续介绍MongoDB的相关内容的,例如索引,主从备份等内容的,但是发现这些内容都可以通过官方文档都可以看到,并且都非常详细,所以这 ...

  2. Redis专题(2):Redis数据结构底层探秘

    前言 上篇文章Redis闲谈(1):构建知识图谱介绍了redis的基本概念.优缺点以及它的内存淘汰机制,相信大家对redis有了初步的认识.互联网的很多应用场景都有着Redis的身影,它能做的事情远远 ...

  3. 专题五:redis的数据类型之set

    一.基本简介 现在出现了新的查询需求:存储大量数据的同时,还需要在查询方面提供更高的效率.虽然list满足存储大量的数据,也可以通过索引来进行访问,但是list底层是双向链表的结构,在查询上的效率并没 ...

  4. 专题四:redis的数据类型之list

    一.基本介绍 对于list,它的存储需求是什么呢?对于string,讲究单个,hash也不讲究大量:当我们需要存储多个数据的时候,前面的数据类型就不大合适了. 数据存储需求:存储多个数据,并对数据进入 ...

  5. 专题三:redis的数据类型之hash

    一.基本介绍 前面一个专题我们讲到string去存储明星微博粉丝数,微博数等,大概介绍了两种方式: set user:id:012345:fans  12210862            set u ...

  6. 专题二:redis的数据类型之string

    一.redis的数据存储格式 redis本身是一个Map,其中所有的数据都是采用 "key:value"的方式进行存储的. 我们说的数据类型是数据存储的类型,也就是对应下图的val ...

  7. Redis专题(3):锁的基本概念到Redis分布式锁实现

    拓展阅读:Redis闲谈(1):构建知识图谱 Redis专题(2):Redis数据结构底层探秘 近来,分布式的问题被广泛提及,比如分布式事务.分布式框架.ZooKeeper.SpringCloud等等 ...

  8. 面试中程序员常见的Redis"刁难"问题,值得一读!

    导读 在程序员面试过程中Redis相关的知识是常被问到的话题.作为一名在互联网技术行业打击过成百上千名的资深技术面试官,总结了面试过程中经常问到的问题.十分值得一读. Redis有哪些数据结构? 字符 ...

  9. 面试阿里被分布式“搞懵”,Redis、MongoDB、memcached没答上来

    都说大厂面试难,一点也没有错,一线大厂的面试究竟怎么样还得自己亲身经历了才知道.小白面试阿里,就被面试官吊打,一问分布式就被“搞懵”了,Redis.MongoDB.Memcached都没答好,很多没有 ...

  10. 图灵学院JAVA互联网架构师专题学习笔记

    图灵学院JAVA互联网架构师专题学习笔记 下载链接:链接: https://pan.baidu.com/s/1xbxDzmnQudnYtMt5Ce1ONQ 密码: fbdj如果失效联系v:itit11 ...

随机推荐

  1. Spring Boot 自动配置的原理、核心注解以及利用自动配置实现了自定义 Starter 组件

    本章内容 自定义属性快速入门 外化配置 自动配置 自定义创建 Starter 组件 摘录:读书是读完这些文字还要好好用心去想想,写书也一样,做任何事也一样 图 2 第二章目录结构图 第 2 章 Spr ...

  2. 2020 巅峰极客 WP_ Re

    第一题:virus 是一个win32 的题,没给加壳. 主函数: int __cdecl main(int argc, const char **argv, const char **envp) { ...

  3. django 的跨域配置

    1.跨域原理 #1. 首先浏览器安全策略限制js ajax跨域访问服务器 #2. 如果服务器返回的头部信息中有当前域: // 允许 http://localhost:8080 这个网站打开的页面中的j ...

  4. Centos-实时监控系统处理器状态-top

    top 实时监控处理器状态的实时监控,能够显示系统中各个进程的资源占用状况 相关选项 -d 指定每两次屏幕信息刷新之间间隔秒数 -i  不显示闲置或者僵死进程信息 -c 显示进程整个命令路径 -s 安 ...

  5. 重启springboot

    前言:springboot项目开发时,会遇到项目重新启动的情况.在百度上资料比较零碎需要整理,实践时需要踩坑,自己在项目中已经实现的功能拿出来与大家分享.希望每一位coder能在编程的路上少走一些弯路 ...

  6. 提升GAN的技术 Tips for Improving GAN

    Wasserstein GAN (WGAN) 在一些情况下,用 JS散度来衡量两个分布的远近并不适合: 1. 数据是高维空间中的低维流形(manifold),两个分布在高维空间中的 overlap 少 ...

  7. Matlab中fspecial的用法

    来源:https://blog.csdn.net/hustrains/article/details/9153553 Fspecial函数用于创建预定义的滤波算子,会与imfilter搭配使用,其语法 ...

  8. Java 使用UDP传输一个小文本文件

    工具1:Eclipse 工具2:IntelliJ IDEA Java工程的目录结构(基于IntelliJ IDEA) 例1.1:接收方,因为接收到的数据是字节流,为了方便,这里是基于Apache co ...

  9. 111 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 01 继承的实现

    111 01 Android 零基础入门 02 Java面向对象 04 Java继承(上)02 继承的实现 01 继承的实现 本文知识点: 继承的实现 说明:因为时间紧张,本人写博客过程中只是对知识点 ...

  10. kalilinux2020.3的安装与一些坑

    1.下载镜像文件.iso kali官方下载太慢,用一些魔法也是不行,这里推荐用国内的下载源. 阿里云: https://mirrors.aliyun.com/kali-images/?spm=a2c6 ...