Redis全程学习笔记(附带学习的视频教程)

这篇博客详细介绍了Redis作为NoSQL数据库的使用,包括其作为内存存储、缓存系统的优势,以及与其他数据库的对比。文章涵盖了Redis的基本操作、数据类型、持久化机制,并探讨了Redis的高性能特性和在大数据时代的重要性。通过实例展示了Redis的安装、基准测试及Java连接操作。此外,还提及了Redis的持久化选项(RDB和AOF)、主从复制和事务特性。
摘要由CSDN通过智能技术生成

Redis全程学习笔记(附带学习的视频教程)

学习的视频地址 https://www.bilibili.com/video/BV1S54y1R7SB?p=13&t=75 狂神说大佬

Nosql概述(读和写)

1一般数据库无法进行分析和处理,APP->DAL ->Mysql

1.数据量太大 ,一个机器放不下
2.数据索引(B+ Tree),一个机器存不下
3.访问量(读写混合),一个服务器受不了
在这里插入图片描述

2.缓存+Mysql+垂直切分(读写分离)
优化数据结构和索引 ->文件缓存(IO)->Memcached(缓存技术)

使用缓存来减轻压力

3.分库分表+水平拆分+MySQL集群

在这里插入图片描述

4.现在:

数据多样化,
在这里插入图片描述

为什么要用NoSQL
用户个人信息 社交网络 地理位置 用户自己产生的数据 用户日志增加
NoSQL=not only SQL
泛指非关系数据库
1.方便扩展(数据间没有关系)
2.大数据高性能(Redis每秒写8万次,读取11万次)
3.数据类型是多样性(不需要事先设计数据库)
4.传统RDBMS和NoSQL

RDBMS 
-结构化数据
-SQL
-数据和关系存在单独的表中
-基础事务
Nosql
-不仅仅是数据
-没有固定的查询语言
-键值对存储 列存储
-最终一致性
-CAP定理和BASE
-高性能 高可用 高扩展
大数据时代的3V:主要是描述问题的
海量Volume
多样Variety
实时Velocity
大数据时代的3高:主要是对程序的要求
高并发
高可扩
高性能

阿里巴巴演进分析
在这里插入图片描述

Nosql 四大类
KV 键值对
新浪 radis
美团:Redis+Tair
阿里,百度云:Radis+memecache
文档型数据库
MongoDB: 分布式文件存储数据库,处理大量文档
列存储数据库
HBase
在这里插入图片描述

Redis入门

Redis 远程字典服务(C语言书写)支持常用语言接口
1.内存存储,持久
2.效率高,高速缓存
3.发布订阅系统
4.地图信息分析

$ wget http://download.redis.io/releases/redis-4.0.11.tar.gz
$ tar xzf redis-2.8.17.tar.gz
$ cd redis-2.8.17
$ make

make完后 redis-4.0.11目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下:

下面启动redis服务.

$ cd src
$ ./redis-server

注意这种方式启动redis 使用的是默认配置。也可以通过启动参数告诉redis使用指定配置文件使用下面命令启动。

$ cd src
$ ./redis-server redis.conf

redis-benchmark 测试性能

#测试并发连接 100个并发连接 100000 请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
打开Redis-server,使用ping测试连接,然后新的终端测试命令

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TBp7ePun-1609331168018)(C:\Users\123\Desktop\Snipaste_2020-12-30_12-01-24.png)]

所有请求49毫秒内处理完成

Redis基础知识

默认16个数据库,select 切换数据库 DBSIZE 数据大小 keys* 查看所有的key

select 切换数据库 
DBSIZE 数据大小 
keys* 查看所有的key
flushdb 清空当前数据库
FLUSHALL 清空全部数据库
EXISTS 判断当前的Key值是否存在
redis-srever kconfig/redis.conig

Redis 单线程,由于机器内存和网络限制。

1.高线程服务器不一定是多线程
redis 数据放在内存中,没有上下文切换

Redis 5大基本数据类型

1.String(字符串)
在这里插入图片描述

type key 查看key的类型

set

在这里插入图片描述

在这里插入图片描述

mest: 同时设置多个值
在这里插入图片描述

2.List
方便实现数组的左加和右加 队列和栈

在这里插入图片描述

​ LPOP RPOP 数组移除

  1. SET
    在这里插入图片描述

Hash(哈希)
Map集合
Zset(有序集合)
在这里插入图片描述

地理位置

在这里插入图片描述

Hyperloglog
什么是基数
两个集合中不重复的元素
在这里插入图片描述

BItmap
在这里插入图片描述

事务

Redis 单条命令保持原子型,但是事务不保证原子性
Redis 事务本质:一组命令的集合,一个事务中所有命令都会被序列化 按照顺序一次性,顺序性 排他性 执行命令
redis事务

开启事务(mukti)
命令入队
执行事务(exec)
在这里插入图片描述

代码出错 所有命令都不会被执行
运行时异常 会运行正确的代码
!在这里插入图片描述

1.悲观锁

什么时候都会出问题,无论什么时候都加锁
2.乐观锁
认为什么时候都不会出问题
在这里插入图片描述

Jedis
Redis 官方推荐连接开发工具
导入jar包 运行

import redis.clients.jedis.Jedis;

public class TestRedis {
    public static void main(String[] args) {
        //连接本地的 Redis 服务
        Jedis jedis = new Jedis("localhost");
        System.out.println("连接成功");
        //设置 redis 字符串数据
        jedis.set("runoobkey", "www.runoob.com");
        // 获取存储的数据并输出
        System.out.println("redis 存储的字符串为: "+ jedis.get("runoobkey"));
    }
}

Redis.conf

在这里插入图片描述

Redis 持久化 RDB

Redis 内存型数据库,
在这里插入图片描述

备份自动生成

在这里插入图片描述

Redis 持久化 AOF

在这里插入图片描述

订阅

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

主从复制之复制原理

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

哨兵模式

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

Redis缓存穿透与雪崩

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值