zoukankan      html  css  js  c++  java
  • 【基础组件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

  • 相关阅读:
    go请求第三方接口(这种方法借助了第三方的依赖实现的)
    go接收前端传过来的方式
    mysql.connector.errors.OperationalError: MySQL Connection not available.
    celery服务
    spring之lookup-method、replaced-method
    spring源码解析(3)-BeanDefinition
    spring源码解析(2)-XmlBeanFactory
    spring源码解析(1)Resource
    Springboot动态装载卸载Bean
    java设计模式之中介者
  • 原文地址:https://www.cnblogs.com/Agnes1994/p/12358197.html
Copyright © 2011-2022 走看看