【基础组件19】redis入门(一)简介、哨兵模式、集群搭建、常用命令、性能高可用、高并发概述

哨兵模式,集群搭建参考:

https://blog.csdn.net/yangshangwei/article/details/82899159    (主要看这个)

https://blog.csdn.net/q649381130/article/details/79931791

https://blog.csdn.net/xujiamin0022016/article/details/82194616

redis 简介参考:

https://blog.csdn.net/middleware2018/article/details/80355418

redis教程参考:

https://www.bilibili.com/video/av49517046?p=2

 

一、redis简介

1.redis 是一个完全开源免费的,高性能的、NoSQL的、key-value 数据库,可基于内存,亦可持久化的 key-value 数据库

   redis 有0-15 共16个数据库,连接客户端后,若不选择数据库,则默认在数据库0

  

 

 

2.关系型数据库SQL:表与表之间建立关联关系

  非关系型数据库NOSQL:数据与数据之间没有关联关系, 常见的有四种类型:key-value存储数据库(redis),列式存储数据库(hbase), 文件存储数据库(hdfs),图数据库(NEO4J)

 

3. 两者特点比对:

 

 

 

 

4.redis的特点:

 

 redis 的读写性能极高:

读支持11万次/秒,写支持8万次/秒

原因:redis是C语言编写的,机器语言,基于内存的存储,直接从内存读,(省略了从硬盘到内存的过程)

 

 

5.redis应用场景(缓存热点数据,经常会被查询到)

    redis支持16个库

 

 6.redis的缺点:

    不过,对于互联网的今天,硬件已经不是问题,只要能提供热点数据的高性能查询

 

 二、redis安装

1.安装gcc环境 

 

 

 

 2.编译

 

 3.编译后的安装

 

 4.安装成功

 

 5.启动服务

 

 6.连接redis客户端

 

 

 

 7.  redis.conf配置文件修改

     配置文件在安装包解压目录下

 

      

 

 8.redis.conf 配置文件详解

1)地址需改为服务器地址,否则开发无法远程访问redis, 只能本机本地访问

 

 2)

 

 3)

 

 4)最大内存限制,默认256M

     占用内存过高,会导致内存溢出,redis宕机

 

 

 

 5)守护进程可以不改为yes, nohup 启动也可以

 

 

三、客户端连接redis 

 

 1.keys *      查看所有key

    set key value      设置Key value

    get key      获取key值

 

 

 

 

 四、关闭redis

 

 

 五、Redis 常用命令

1.del key    删除key

删除key, 成功返回1,失败返回0

可一次删除多个key 直接跟在del 后即可

 2.dump key  持久化key

   序列化某个key到硬盘,并返回key值

 

 3.exists key 检查给定key是否存在

     存在,返回1;不存在,返回0

 

 4. ttl key 查看指定key剩余存活时间 (秒)

     pttl key     (毫秒)

     -1 代表永久存活

    

 

 5. expire key second 设置给定key存活时间(秒)

     pexpire key milesecond     (毫秒)

    -2代表已消失了,过期了

 

 举例:用户小红的ID为100, 修改用户小红时,会把key 存入redis, 这样别人从redis查到 ID 100 正在修改,就不能去修改这个用户了,

            等修改完用户,再让key 消失过期掉。这就是锁。key value命名可以是: 财务_1:ID100  财务_2:ID101   代表相同类型业务下的不同数据

6.persist key 移除给定key的过期时间,key将永久保持

 

 

 7.keys pattern 查找通配符匹配的key

 

 

 

 8.rename key newkey 修改key名称

 

 9.move key db 将给定key从当前数据库移动到新库

 

 10. type key 返回key所存储值的类型

 

 

 

 六.redis实际应用场景

 

 

 

 

 

 3小时后活动信息就不存在了,如一些限时促销活动,或者排行榜,当天过了,就不存在了

手机验证码(120秒内有效),密码错误5次后,15分钟内不许登录等

 

监控项目应用场景

场景1:用户权限缓存

SpringBoot项目+Shiro(权限框架)+Redis(缓存)集成

参考:https://www.cnblogs.com/wdzhz/p/12051202.html

说明:

 

七、key的命名规范

       key命名不可以重复。一个key对应一个value

       行业的规范用冒号:

       redis的命令不区分大小写,但是key的命名是区分大小写的

 

 

 

 

 

 key命名举例:(行业的规范用冒号:,不用下划线,下划线可能会和下划线命名的列名无法区分)

 

 八、redis支持的五种数据类型(value)

  

 

 1.string类型,是二进制安全的

 

 左边频繁的编码解码,右边不需要频繁的编码解码,是C语言,机器语言编写的redis

 

 

2.string命令、赋值语法、取值语法

 

 

 

 

 

 

示例1:

 SETNX key value 面试常考命令,解决分布式锁的问题

示例2:

 

 

示例3:getset key new_value  先取值,再赋值

 

 

 

 示例4:incr key  第一次执行,不存在,则自动赋value为1,第二次执行,第三次执行,则valure自增

 

 示例5:decr key 自减少,可尝试错误密码登录次数

 

 示例6:incrby key 10 设定自增值, 自增幅度            

 示例7:decrby key 10 设置自减少,自减幅度

 

 3.string类型应用场景:

 

 

 string类型用得最多,公司通常统一使用string类型,方便管理

 

 4.hash命令(P10-P29课以后再听,基本string类型就是满足项目使用的了)

省略!!!!

https://www.bilibili.com/video/av49517046?p=10

 

 javabean 一个对象

 

 

 

 九、高可用、高并发基本概述

高可用(单点故障、容错性)

高并发(吞吐量)

 

 

高并发:同一个时间段内,处理多个请求

              如12306网站, 8点开始抢票,则8点会有多个线程去发请求

 

 十、提升系统的并发能力

 

 

 

 

 

垂直扩展:增加单机硬件性能,如给环卫工人配清洁车,这样原本1个人只能扫一个街区的,现在可以扫两个街区了,提高了吞吐量

水平扩展:增加节点,增加服务器数量,如增加10个环卫工人,这样也提高了吞吐量

 

十一、Redis的主从复制

 

 https://www.bilibili.com/video/av49517046?p=31

 

posted @ 2020-02-24 18:50  天天天蓝蓝调调  阅读(195)  评论(0编辑  收藏  举报