redis 基础(一) 初步了解redis

1缓存相关

1.1缓存穿透

问题:查询的key再redis中不存在,对应的id在数据库也不存在。此时被非法用户进行攻击,大量的请求会去数据库(DB)造成宕机,从而影响整个系统。这种现象称之为 缓存穿透;

解决方法:缓存redis把空的数据也缓存到redis中,比如空字符串,空对象等;

1.2缓存雪崩

在高并发下,大量缓存key在同一时间失效,大量请求直接落在数据库上,导致数据库宕机。

缓存雪崩一般只能缓解,不能杜绝;

解决方式:缓存永不过期、过期时间错开(避免大量缓存同一时间过期)、多缓存结合(redis、Memcache)【先请求redis,没有就去Memcache】、采购第三方redis(比如阿里云)

2 分布式架构

  1. 什么是分布式架构:
    1.   不同的业务(功能模块)分散部署在不同的服务器
    2.   每个子系统负责一- 个或者多个不同的业务模块
    3.   服务之间可以相互交互与通信
  2. 分布式系统设计对用户透明
  3. 可以发展为集群分布式系统架构
  4. 举例单体架构和分布式架构
  5. 分布式架构优点:
    1. 业务解耦
    2. 系统模块化,可重用化
    3. 提升系统并发量
    4. 优化运维部署效率
  6. 分布式架构缺点:
    1. 架构复杂
    2. 部署多个子系统复杂
    3. 系统之间通信耗时
    4. 新人融入团队缓慢.
    5. 调试复杂.
  7. 分布式架构设计原则
    1. 异步解耦
    2. 幂等- -致性
    3. 拆分原则(功能、业务拆分)
    4. 融合分布式中间件
    5. 容错高可用

3Nosql

3.1什么是NoSql

  1. 存值方式: key-value
  2. Not Only Sql
  3. 传统项目使用纯数据库
  4. 为互联网和大数据而生
  5. 水平(横向)扩展方便高效
  6. 高性能读取
  7. 高可用
  8. 存数据,做缓存

3.2Nosql常见分类

  1. 键值对数据库:Redis. Memcache
  2. 列存储数据库:Hbase. Cassandra
  3. 文档型数据库:MongoDB. CouchDB
  4. 图形数据库:Neo4J、FlockDB

4分布式缓存

4.1什么是分布式缓存

  1. 提升读取速度性能
  2. 分布式计算领域
  3. 为数据库降低查询压力

4.2什么是reids

  1. NoSql
  2. 分布式缓存中间件
  3. key-value存储
  4. 提供海量数据存储访问
  5. 数据存储在内存里,读取更快
  6. 非关系型、分布式、开源、水平扩展

5分布式缓存方案对比

5.1Ehcache(适合单应用)

  1. 优点:
    1. 基于java开发
    2. 基于JVM缓存
    3. 简单、轻巧、方便
  2. 缺点:
    1. 集群不支持
    2. 分布式不支持

5.2Memcache

  1. 优点:
    1. 简单的key-value存储
    2. 内存使用率比较高
    3. 多核处理,多线程.
  2. 缺点:
    1. 无法容灾(重启后之前数据无法恢复)
    2. 无法持久化

5.3Redis

  1. 优点:
    1. 丰富的数据结构
    2. 持久化.
    3. 主从同步、故障转移
    4. 内存数据库
  2. 缺点:
    1. 单线程
    2. 单核
原文地址:https://www.cnblogs.com/1439107348s/p/14323904.html