Redis相关一些基础知识

MLXY 2020-04-26

1.为什么用redis
  • 提高性能,内存VS硬盘
  • 提高并发,缓存担任部分请求,支持高并发

    2.缓存数据删除机制

  • 惰性删除
  • 定期删除
    推荐使用allkeys-lru:删除最少使用的key

    3.缓存雪崩原因

    redis直接故障:解决方法redis集群部署redis cluster模式
    对缓存数据设置了相同的时间,导致某段时间数据全部失效:使用allkey-lru算法

    4.缓存穿透

    请求的数据一定是缓存中没有的,比如有些空值,选择布隆过滤器(布隆过滤器是一种概率型数据结构)
    对空值进行缓存

    5.一致性问题,缓存数据和数据库数据

    先删除缓存,再更新数据库;始用原子破坏性
    先更新数据库,再删除缓存;高并发场景

    6.持久化存储(RDB和AOF)

    (1)RDB快照式存储【默认】
    触发机制:手动save,期间redis不能处理其他命令,如果数据比较大,不建议执行。
    bgsave触发:异步进行快照操作,常用操作!
    自动触发:根据键值更新频率,设置不同时间自动处理
    优点:文件紧凑,全量备份,适合灾难恢复,恢复速度快
    缺点:即便是bgsave异步持久化,但是在开启子进程进行操作期间,会有一部分数据无法保存。
    (2)AOF追加式存储
    优点:数据保护性更好,文件不易损坏
    缺点:文件比较大,占用一定的IO资源(每秒中追加保存一次)
    (3)两个都启用,redis重启优先加载AOF文件

7.redis的5种对象类型:字符串、哈希、列表、集合、有序集合

8.redis常见高可用架构

【redis主从】:
主要是备份,其次是高可用(主节点坏掉,需要手工切换), 我们操作主库,数据也会同步到从库。 如果主库机器坏了,从库可以上。就好比你 D盘的片丢了,但是你移动硬盘里边备份有。
【redis哨兵】:
兼并备份,高可用(不需要手动),保证特殊情况故障自动切换,哨兵盯着你的“redis主从集群”,如果主库死了,它会告诉你新的老大是谁。
【redis集群】:
兼并备份,高可用,高并发,因为多了一些兄弟帮忙一起扛。同时集群会导致数据的分散,整个redis集群会分成一堆数据槽,即不同的key会放到不不同的槽中

9.Memcache与Redis的区别都有哪些?

1)、存储方式 Memecache把数据全部存在内存之中,断电后会挂掉,数据不能超过内存大小。 Redis有部份存在硬盘上,redis可以持久化其数据
2)、数据支持类型 memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型 ,提供list,set,zset,hash等数据结构的存储
3)、使用底层模型不同 它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。 Redis直接自己构建了VM 机制 ,因为一般的系统调用系统函数的话,会浪费一定的时间去移动和请求。
4). value 值大小不同:Redis 最大可以达到 512M;memcache 只有 1mb。
5)redis的速度比memcached快很多
6)Redis支持数据的备份,即master-slave模式的数据备份。*

相关推荐

DiamondTao / 0评论 2020-08-30