NoSQL:redis

一、 NoSQL入门和概述

1、是什么

nosql:no only sql,非关系型数据库

2、能干嘛

  1. 易扩展
  2. 大数据量高性能
  3. 多样灵活的数据模型
  4. 键值对存取

3. 3V3高

4. 当下的NoSQL的应用

当下的应用是sql和nosql一起使用的

5.NoSQL数据模型简介

  • 什么时BSON
    BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON,它和JSON一样,支持内嵌的文档对象和数组对象
  • 聚合模型

1. KV键值对

2. Bson

3. 列族

在这里插入图片描述

4. 图形

在这里插入图片描述

6.NoSQL数据库的四大分类

1. KV键值对:典型介绍

新浪:BerkeleyDB + redis
美团:redis + tair
阿里、百度:memcache+redis

2. 文档型数据库(bson格式比较多):典型介绍

CouchDB
MongoDB:是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决,是一个介于关系型数据库和非关系型数据库之间的产品,是非关系型数据库当中功能最丰富,最像关系数据库的。

3. 列存储数据库

Cassandra,HBase
分布式文件系统

4. 图关系数据库

它不是放图形的,放的是关系比如:朋友圈社交网络、广告推荐系统,社交网络,推荐系统等。专注于构建关系图谱,Neo4J,InfoGrid

7. 在分布式数据库中CAP原理CAP+BASE

1. 传统数据库的ACID是什么

2. CAP

  • C:Consistency 强一致性
  • A:Availability 可用性
  • P:Partition tolerance 分区容错性

3. CAP的3进2

  • CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性、可用性和分区容错性这三个需求
  • 因此 根据CAP原理将NoSQL数据库分成了满足CA原则、满足CP原则和满足AP原则三大类
    1. CA —— 单点集群,满足一致性,可用性的系统,通常在可扩展上不太强大(传统Oracle数据库)
    2. CP —— 满足一致性,分区容忍性的系统,通常性能不是特别高(Redis、Mongodb)
    3. AP —— 满足可用性、分区容错性的系统,通常可能对一致性要求低一些(大多数网站架构的选择)

4. 经典CAP图

在这里插入图片描述

5. BASE

  • BASE就是为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。
  • BASE其实是下面三个术语的缩写
    1. 基本可用 Basically Available
    2. 软状态 Soft state
    3. 最终一致 Eventually consistent
  • 它的思想是通过让系统放松对某一时刻数据一致性的要求来换取系统整体伸缩性和性能上的改观。为什么这么说呢,缘由就在于大型系统往往由于地域分布和极高性能的要求,不可能采用分布式事务来完成这些指标,要想获得这些指标,我们不需采用另一种方式来完成,这里BASE就是解决这个问题的办法

6. 分布式+集群简介

  1. 分布式系统(distributed system):由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。分布式系统可以应用在不同的平台上如:Pc、工作站、局域网和广域网上等。
  2. 分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作
  3. 集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问

二、Redis入门介绍

1. 入门概述

1. 是什么

  • Redis:REmote DIctionary Server (远程字典服务器)
  • 是完全开源免费的,用c语言编写的,遵守BSD协议,是一个高性能的(key/value)分布式内存数据库,基于内存运行并支持持久化的NoSQL数据库,也被人们称为数据结构服务器
  • Redis与其他key-value缓存产品相比有以下三个特点
    1. Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载使用
    2. Redis不仅仅支持简单的的key-value类型的数据,同时还提供list、set、zset、hash等数据结构的存储
    3. Redus支持数据的备份,即master-slave模式的数据备份

2. 能干嘛

  1. 内存存储持久化:redis支持异步将内存中的数据写到硬盘上,同时不影响继续服务
  2. 取最新n个数据的操作,如:可以将最新的10条评论的ID放在Redis的List集合里面
  3. 模拟类似于HttpSession这种需要设定过期时间的功能
  4. 发布、订阅信息系统
  5. 定时器,计数器

3. redis的安装

尚硅谷超经典Redis教程,redis实战,阳哥版从入门到精通

4.redis启动后的杂项基础知识

  • redis启动
    在这里插入图片描述
  • 单进程
  • 默认16个数据库,类似数组下标从0开始,初始默认使用零号库
  • Select命令切换数据库
  • Dbsize:查看当前数据库的key的数量
  • Flushdb:清空当前库
  • Flushall:通杀全部库
  • 统一密码管理,16个库都是统一的密码,要么都OK要么一个都连接不上
  • Redis索引都是从0开始
  • 为什么默认端口是6379 —— merz

三、Redis数据类型

1. Redis的五大数据类型

  • String(字符串)
  • Hash(哈希,类似Java里的Map)
  • List(列表)
  • Set(集合)
  • Zset(sorted set:有序集合)

2. 哪里去获得Redis常见数据类型操作命令

Redis 命令参考:http://redisdoc.com/

3. Redis键(key)

  • keys *:查看当前库的全部key
  • exist key:判断某个key是否存在
  • move key db:将当前库的key移到db库
  • expire key 秒钟:为给定key设置过期时间
  • ttl key:查看还有多少秒过期,-1表示永不过期,-2表示已过期
  • type key:查看key是什么类型

4. Redis字符串(String)

在这里插入图片描述

5. Redis列表(List)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. Redis集合(Set)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

7. Redis哈希(Hash)

在这里插入图片描述
在这里插入图片描述

8. Redis有序集合Zset(sorted set)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

四、解析配置文件,redis.conf

1. 它在哪

在这里插入图片描述
将其拷贝一份出来修改

2. Unit单位

在这里插入图片描述

3. INCLUDES包含

在这里插入图片描述

4. GENERAL通用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. SHAPSHOTTING快照

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6. REPLICATION复制

7. SECURITY安全

在这里插入图片描述
在这里插入图片描述

8. LIMITS限制

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

9. APPENDONLY MODE 追加

10. 常见配置redis.conf介绍

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

五、Redis的持久化

1.RDB(Redis DataBase)

官网介绍:在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照,它恢复时是将快照文件直接读到内存里

1.是什么

在这里插入图片描述

2.fork

Fork的作用是复制一个与当前进程一样的进程。新进程的所有数据(变量、环境变量、程序计数器等)数值都和原进程一致,但是是一个全新的进程,并作为原进程的子进程

3.Rdb保存的是dump.rdb文件

4. 配置位置

SHAPSHOTTING快照

5.如何触发RDB快照

在这里插入图片描述
在这里插入图片描述

6.如何恢复

在这里插入图片描述

7.优势

在这里插入图片描述

8.劣势

在这里插入图片描述

9.如何停止

在这里插入图片描述

10.小总结

在这里插入图片描述

2.AOF(Append Only File)

官网介绍:

1.是什么

在这里插入图片描述

2.Aof保存的是appendonly.aof文件

3.配置位置

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.AOF启动/修复/恢复

在这里插入图片描述
在这里插入图片描述

5.Rewrite

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.优势

在这里插入图片描述

7.劣势

在这里插入图片描述

8.小总结

在这里插入图片描述

3.总结

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、Redis的事务

1.是什么

在这里插入图片描述

2.能干嘛

在这里插入图片描述

3.怎么玩

在这里插入图片描述

1.常用命令

在这里插入图片描述

2.case1:正常执行

在这里插入图片描述

3.case2:放弃事务

在这里插入图片描述

4.case3:全体连坐(类似于Java的编译时错误)

在这里插入图片描述

5.case4:冤头债主(类似于Java的运行时错误)

在这里插入图片描述

6.case5:watch监控

  1. 悲观锁(类似于MySQL的表锁
    在这里插入图片描述

  2. 乐观锁(在每条记录之后加一个version作为标记
    在这里插入图片描述

  3. CAS(Check and Set)
    在这里插入图片描述

  4. 总结
    在这里插入图片描述

4.三阶段

在这里插入图片描述

5.三特性

在这里插入图片描述

七、Redis的发布订阅

1.是什么

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.命令

在这里插入图片描述

3.案例

在这里插入图片描述

八、Redis的复制(Master/Slave)

1.是什么

在这里插入图片描述

2.能干嘛

  1. 读写分离
  2. 容灾恢复

3.怎么玩

1.配从(库)不配主(库)

2.从库配置:slaveof 主库IP 主库端口

在这里插入图片描述

3.修改配置文件的细节操作

  1. 拷贝多个redis.conf文件
  2. 开启daemonize yes
  3. Pid文件名称
  4. 指定端口
  5. Log文件名字
  6. Dump.rdb名字

4.常用3招

a、一主二仆
读写分离
b、薪火相传
在这里插入图片描述

c、反客为主 slaveof no one
在这里插入图片描述

4.复制原理

在这里插入图片描述

5.哨兵模式(sentinel)

1.是什么

在这里插入图片描述

2.怎么玩

在这里插入图片描述
在这里插入图片描述
之前的master重启回来后,成为新的master的slave

3.一组sentinel能同时监控多个Master

6.复制的缺点

在这里插入图片描述

九、Redis的Java客户端Jedis

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值