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

  • 相关阅读:
    服务器状态码
    QuerySet中添加Extra进行SQL查询
    django配置一个网站建设
    MySQL数据库查询中的特殊命令
    125. Valid Palindrome
    121. Best Time to Buy and Sell Stock
    117. Populating Next Right Pointers in Each Node II
    98. Validate Binary Search Tree
    91. Decode Ways
    90. Subsets II
  • 原文地址:https://www.cnblogs.com/Agnes1994/p/12358197.html
Copyright © 2011-2022 走看看