redis数据库学习

作者: 布尔bl | 来源:发表于2019-09-15 15:46 被阅读0次

0 使用理由

0.1 高性能

  • 纯内存操作,比在硬盘操作数据的速度有极大提升

0.2 高并发

  • 承受请求比直接操作数据库大得多

0.3 单线程

  • 至于redis单线程的原因。有点意思。CPU不是Redis的主要瓶颈,因为Redis通常是内存或网络绑定。例如,一般Linux系统上运行的Redis每秒甚至可以提供100万个请求,因此不会使用太多的CPU。言下之意,就是说redis根本不需要多线程,况且多线程会有上下文切换消耗。当然可以通过启动多个redis实例,达到利用cpu的目的。

1 缓存使用

1.1 使用场景

  • 读对于写,为了减少数据库访问的id操作,可以将数据缓存,提高系统性能

1.2 使用方法

  • 查询
    1. 查出数据后,利用json将数据转成String类型,存进reids
  • 更新
    1. 先把数据更新到数据库
    2. 删除reids的key

2 缓存雪崩

2.1 what

  • 由于缓存时间相近或者redis宕机导致缓存数据同一时间大面积失效,使得数据库短时间请求增多,增加数据库压力,减低数据库访问性能

2.2 how(解决):

  • 事前:
    1. 宕机导致:的保证redis高可用,发现机器宕机,及时补上。选择合适的内存淘汰策略
    2. 缓存失效时间相同导致的:在设计时间的时候随机加减几分钟
  • 事后:
    1. 宕机导致的: 利用redis持久化机制保存的数据及时恢复缓存

3 缓存穿透

3.1 what(是什么)

  • 请求缓存中不存在的数据,使得数据库压力增大,从而崩掉

3.2 how:(解决)

  • 布隆过滤器
  • 直接缓存他(空的),设计一个较短时间,使其失效

4 Redis数据类型

  • String 字符串
  • Hash哈希 :用户ID
  • List列表 :粉丝列表
  • Set集合 :共同好友
  • Sorted Set有序集合:排行榜

5 主从复制

5.1 定义/解释

建立一个与主数据库一样的数据库环境,称为从数据库,主复制库一般是准实时的业务数据库。

5.2 作用

  • 作为备用数据库,主数据库发生故障后,切换到从数据库
  • 架构扩展,业务量增大,io访问频繁,做多库的存储,提高io性能
  • 实现读写分离。

5.3 原理

  • 将主数据库中的bin-log文件的sql语句复制到从数据库中的relay-log文件,再次执行。

5.4 Redis哨兵

  • 用途:
    1. 监视主从数据库运行情况
    2. 主数据库发生故障后,自动切换到从数据库

6 卡顿现象

6.1 解决方法:

  • 使用show global status
  • 使用show processlist
  • 使用查询日志

7 大数据查询优化

  • 优化sql语句 索引
  • 使用主从复制,实现读写分离
  • 加入缓存 如redis

相关文章

  • 寒假自学Redis

    NoSQL类型数据库学习 redis安装和启动方式 在linux环境下redis学习,首先就是安装redis然后修...

  • day40-Python连接Redis

    一、Redis 1.Redis数据库 Redis内存数据库 -> KV数据库 2.Redis持久化数据 Redis...

  • redis 持久化详解

    关于redis的安装和基本使用,参考本人博客: redis安装和基础入门 Redis数据库的学习与实践—Redis...

  • Redis

    最近在学习Nosql(非关系型数据库)因此捡回了Linux和开始学习了Redis 接下来会继续学习Redis ...

  • 云数据库 Redis 版功能特性

    关于云数据库 Redis 版详细了解: 云数据库 Redis 版使用教程 (云数据库Redis版是兼容Redis协...

  • Python ☞ day 13

    Python学习笔记之 MongoDB数据库 & Redis数据库 系统说明:windows 一、操作MongoD...

  • Thinkphp5怎么扩展Redis数据库,实现Redis的CU

    Thinkphp5怎么扩展Redis数据库,实现Redis的CURD操作 Redis怎么使用Redis数据库,本篇...

  • 2020-03-24

    Redis学习记录(一)之Redis的简介及安装使用 Redis作为NoSql较为流行使用的数据库之一,个人觉得还...

  • redis存取

    Redis的数据库 Redis 对数据库进行了抽象,在 Redis 源码中,承担数据库角色的叫 redisDb。 ...

  • 原 MySQL数据库的常用操作

    学习python少不了和数据库打交道,常见的数据库有:MySQL、SQLite、MongoDB、Redis等,这里...

网友评论

    本文标题:redis数据库学习

    本文链接:https://www.haomeiwen.com/subject/wdcbyctx.html