NoSQL概述与Redis入门-redis安装与测试

这篇具有很好参考价值的文章主要介绍了NoSQL概述与Redis入门-redis安装与测试。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Nosql概述

1、为什么使用Nosql

1、单机Mysql时代

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题

  1. 数据量增加到一定程度,单机数据库就放不下了
  2. 数据的索引(B+ Tree),一个机器内存也存放不下
  3. 访问量变大后(读写混合),一台服务器承受不住。

2、Memcached(缓存) + Mysql + 垂直拆分(读写分离)

网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望减轻数据库的压力,我们可以使用缓存来保证效率

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

优化过程经历了以下几个过程:

①优化数据库的数据结构和索引(难度大)

②文件缓存,通过IO流获取比每次都访问数据库效率略高,但是流量爆炸式增长时候,IO流也承受不了

③MemCache,当时最热门的技术,通过在数据库和数据库访问层之间加上一层缓存,第一次访问时查询数据库,将结果保存到缓存,后续的查询先检查缓存,若有直接拿去使用,效率显著提升。

3、分库分表 + 水平拆分 + Mysql集群

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

4、如今最近的年代

如今信息量井喷式增长,各种各样的数据出现(用户定位数据,图片数据等),大数据的背景下关系型数据库(RDBMS)无法满足大量数据要求。Nosql数据库就能轻松解决这些问题

目前一个基本的互联网项目

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

为什么要用NoSQL ?

用户的个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等等爆发式增长
这时候我们就需要使用NoSQL数据库的,Nosql可以很好的处理以上的情况!

2、什么是Nosql

NoSQL = Not Only SQL(不仅仅是SQL)

Not Only Structured Query Language

关系型数据库:列+行,同一个表下数据的结构是一样的。

非关系型数据库:数据存储没有固定的格式,并且可以进行横向扩展。

NoSQL泛指非关系型数据库,随着web2.0互联网的诞生,传统的关系型数据库很难对付web2.0时代!尤其是超大规模的高并发的社区,暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展的十分迅速,Redis是发展最快的。

3、Nosql特点

  1. 方便扩展(数据之间没有关系,很好扩展!)
  2. 大数据量高性能(Redis一秒可以写8万次,读11万次,NoSQL的缓存记录级,是一种细粒度的缓存,性能会比较高!)
  3. 数据类型是多样型的!(不需要事先设计数据库,随取随用)
  4. 传统的 RDBMS 和 NoSQL
传统的 RDBMS(关系型数据库)
- 结构化组织
- SQL
- 数据和关系都存在单独的表中 row col
- 操作,数据定义语言
- 严格的一致性
- 基础的事务
- ...
Nosql
- 不仅仅是数据
- 没有固定的查询语言
- 键值对存储,列存储,文档存储,图形数据库(社交关系)
- 最终一致性
- CAP定理和BASE
- 高性能,高可用,高扩展
- ...

了解:3V + 3高

大数据时代的3V :主要是描述问题

  1. 海量Velume
  2. 多样Variety
  3. 实时Velocity

大数据时代的3高 : 主要是对程序的要求

  1. 高并发
  2. 高可扩
  3. 高性能

真正在公司中的实践:NoSQL + RDBMS 一起使用才是最强的。

4、阿里巴巴演进分析

推荐阅读:阿里云的这群疯子https://yq.aliyun.com/articles/653511

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

# 商品信息
- 一般存放在关系型数据库:Mysql,阿里巴巴使用的Mysql都是经过内部改动的。

# 商品描述、评论(文字居多)
- 文档型数据库:MongoDB

# 图片
- 分布式文件系统 FastDFS
- 淘宝:TFS
- Google: GFS
- Hadoop: HDFS
- 阿里云: oss

# 商品关键字 用于搜索
- 搜索引擎:solr,elasticsearch
- 阿里:Isearch 多隆

# 商品热门的波段信息
- 内存数据库:Redis,Memcache

# 商品交易,外部支付接口
- 第三方应用

5、Nosql的四大分类

KV键值对

  • 新浪:Redis
  • 美团:Redis + Tair
  • 阿里、百度:Redis + Memcache

文档型数据库(bson数据格式):

  • MongoDB(掌握)
    • 基于分布式文件存储的数据库。C++编写,用于处理大量文档。
    • MongoDB是RDBMS和NoSQL的中间产品。MongoDB是非关系型数据库中功能最丰富的,NoSQL中最像关系型数据库的数据库。
  • ConthDB

列存储数据库

  • HBase(大数据必学)
  • 分布式文件系统

图关系数据库

用于广告推荐,社交网络

  • Neo4j、InfoGrid

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

二、Redis入门

1、概述

Redis是什么?

RedisRemote Dictionary Server ),即远程字典服务

是一个开源的使用ANSI C语言编写支持网络、可基于内存可持久化的日志型Key-Value数据库,并提供多种语言的API

memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步

Redis能该干什么?

  1. 内存存储、持久化,内存是断电即失的,所以需要持久化(RDB、AOF)
  2. 高效率、用于高速缓冲
  3. 发布订阅系统
  4. 地图信息分析
  5. 计时器、计数器(eg:浏览量)
  6. 。。。

2、环境搭建

官网:https://redis.io/

推荐使用Linux服务器学习。

windows版本的Redis已经停更很久了…

3、Windows安装

https://github.com/dmajkic/redis

1.解压安装包

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

2.开启redis-server.exe

3.启动redis-cli.exe测试

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

4、Linux安装(重点)

1.下载安装包!redis-5.0.8.tar.gz

2.解压Redis的安装包!程序一般放在 /opt 目录下

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

3.基本环境安装

yum install gcc-c++
# 然后进入redis目录下执行
make
# 然后执行
make install

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

4.redis默认安装路径 /usr/local/bin

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

5.将redis的配置文件复制到 程序安装目录 /usr/local/bin/kconfig

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

6.redis默认不是后台启动的,需要修改配置文件!

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

7.通过制定的配置文件启动redis服务

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

redis-server kconfig/redis.conf

8.使用redis-cli连接指定的端口号测试,Redis的默认端口6379

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

redis-cli -p 6379

9.查看redis进程是否开启

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

ps -ef | grep redis

10.关闭Redis服务 shutdown

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

11.再次查看进程是否存在

12.后面我们会使用单机多Redis启动集群测试

5、测试性能

redis-benchmark: 是一个压力测试工具!

Redis官方提供的性能测试工具,Redis-benchmark 命令参数选项如下:

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

简单测试:

先开启redis-server、redis-cli,并查看运行情况

重新开启一个终端

# 测试:100个并发连接 100000请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
redis-benchmark -n 10000  -q

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

6、基础知识

redis默认有16个数据库

NoSQL概述与Redis入门-redis安装与测试,Redis,nosql,redis,数据库

默认使用的第0个;

16个数据库为:DB 0~DB 15
默认使用DB 0 ,可以使用select n切换到DB n,dbsize可以查看当前数据库的大小,与key数量相关。

127.0.0.1:6379> config get databases # 命令行查看数据库数量databases
1) "databases"
2) "16"

127.0.0.1:6379> select 8 # 切换数据库 DB 8
OK
127.0.0.1:6379[8]> dbsize # 查看数据库大小
(integer) 0

# 不同数据库之间 数据是不能互通的,并且dbsize 是根据库中key的个数。
127.0.0.1:6379> set name sakura 
OK
127.0.0.1:6379> SELECT 8
OK
127.0.0.1:6379[8]> get name # db8中并不能获取db0中的键值对。
(nil)
127.0.0.1:6379[8]> DBSIZE
(integer) 0
127.0.0.1:6379[8]> SELECT 0
OK
127.0.0.1:6379> keys *
1) "counter:__rand_int__"
2) "mylist"
3) "name"
4) "key:__rand_int__"
5) "myset:__rand_int__"
127.0.0.1:6379> DBSIZE # size和key个数相关
(integer) 5

keys * :查看当前数据库中所有的key。

flushdb:清空当前数据库中的键值对。

flushall:清空所有数据库的键值对。

Redis是单线程的,Redis是基于内存操作的。

所以Redis的性能瓶颈不是CPU,而是机器内存和网络带宽

那么为什么Redis的速度如此快呢,性能这么高呢?QPS达到10W+

Redis为什么单线程还这么快?

  • 误区1:高性能的服务器一定是多线程的?
  • 误区2:多线程(CPU上下文会切换!)一定比单线程效率高!

核心Redis是将所有的数据放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时的操作!),对于内存系统来说,如果没有上下文切换效率就是最高的,多次读写都是在一个CPU上的,在内存存储数据情况下,单线程就是最佳的方案

NoSQL概述与Redis入门-redis安装与测试 的学习笔记到此完结,笔者归纳、创作不易,大佬们给个3连再起飞吧文章来源地址https://www.toymoban.com/news/detail-785004.html

到了这里,关于NoSQL概述与Redis入门-redis安装与测试的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • NoSQL MongoDB Redis E-R图 UML类图概述

    NoSQL(Not only SQL)是对不同于传统的关系数据库的数据库管理系统的统称,即广义地来说可以把所有不是关系型数据库的数据库统称为NoSQL。 NoSQL 数据库专门构建用于特定的数据模型,并且具有灵活的架构来构建现代应用程序。NoSQL 数据库使用各种数据模型来访问和管理数据。这

    2024年02月10日
    浏览(42)
  • 【Redis,Java】Redis的两种序列化方式—nosql数据库

    redis和mysql的区别: redis是属于nosql的数据库,而mysql是属于sql数据库,redis是属于nosql数据库。mysql是存储在磁盘中的,redis是存储在内存中的,所以redis的读取书读快。这里所说的redis代表nosql,而mysql代表sql。 redis的数据库是以键值对为基础存储在内存中的,而mysql为代表的关

    2024年02月21日
    浏览(54)
  • 数据库缓存服务——NoSQL之Redis配置与优化

    目录 一、缓存概念 1.1 系统缓存 1.2 缓存保存位置及分层结构 1.2.1 DNS缓存 1.2.2 应用层缓存 1.2.3 数据层缓存 1.2.4 硬件缓存 二、关系型数据库与非关系型数据库 2.1 关系型数据库 2.2 非关系型数据库 2.3 关系型数据库和非关系型数据库区别: 2.4 非关系型数据库产生背景 2.5 总结

    2024年02月15日
    浏览(48)
  • 【NOSQL数据库】Redis数据库的配置与优化一

    关系型数据库是一个结构化的数据库, 创建在关系模型(二维表格模型)基础上 ,一般面向于记录。 SQL 语句(标准数据查询语言)就 是一种基于关系型数据库的语言 ,用于执行对关系型数据库中数据的检索和操作。 主流的关系型数据库包括 Oracle、MySQL、SQL Server、Microso

    2024年02月11日
    浏览(46)
  • Redis基于内存的key-value结构化NOSQL(非关系型)数据库

    Redis基于内存的key-value结构的NOSQL(非关系型)数据库 非关系型数据库:表与表之间没有复杂的关系 基于内存存储,读写性能高 – Redis读的速度是110000次/S 适合存储热点数据(商品、新闻资讯) 它存储的value类型比较丰富,也称为结构化NoSQL数据库 直接解压windows版压缩包就

    2024年02月11日
    浏览(59)
  • NoSQL技术——Redis

    Redis是当下最流行的NoSQL数据库。在Redis中,数据的存储格式是以键值对的方式进行存储的。在键值对的存储形式中,值除了是常见的字符串,也可以是类似于Json对象的形式,或者是List,Map等数组格式,或者是其他的复杂类型,所以键值对的存储方式也足够满足我们日常的使

    2024年02月09日
    浏览(33)
  • nosql之redis集群

    (1)单点故障、服务不可用 (2)无法处理大量的并发数据请求 (3)数据丢失 (1)提供在多个redis节点间共享数据的程序集 (2)redis集群并不支持处理多个keys命令,因需在不同的节点间移动数据,从而达不到像redis那样的性能,在高负载的情况下,可能会导致不同预判的错

    2024年02月14日
    浏览(37)
  • NoSQL之Redis配置

    关系型数据库是一个结构化的数据库,创建在关系模型(二维表格模型)基础上,一般面向于记录。 SQL 语句(标准数据查询语言)就是一种基于关系型数据库的语言,用于执行对关系型数据库中数据的检索和操作。 主流的关系型数据库包括 Oracle、MySQL、SQL Server、Microsoft A

    2024年02月12日
    浏览(35)
  • 【100天精通python】Day44:python网络爬虫开发_爬虫基础(爬虫数据存储:基本文件存储,MySQL,NoSQL:MongDB,Redis 数据库存储+实战代码)

    目录 1 数据存储 1.1 爬虫存储:基本文件存储 1.2 爬虫存储:使用MySQL 数据库 1.3 爬虫 NoSQL 数据库使用 1.3.1 MongoDB 简介

    2024年02月11日
    浏览(69)
  • NoSQL-Redis集群

    1.单点Redis带来的问题: (1)单点故障,服务不可用 (2)无法处理大量的并发请求 (3)数据丢失—大灾难 2.解决: 搭建redis集群 3.集群的介绍: (1)是一个通过在多个redis间节点间共享数据的程序集。 (2)并不支持处理多个keys的命令。 (3)通过分区提供一定程度的可用

    2024年02月14日
    浏览(31)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包