redis基础知识

Redis知识汇总

数据类型

  1. Strings 字符型
  2. Hashes 字典
  3. Lists 集合
  4. Sets 不重复集合
  5. ZSet 有序集合
  6. bitmap

redis优点

  1. 速度快,数据在内存中,结构类似hashmap,查询时间复杂度是O(1)
  2. 支持丰富数据类型
  3. 支持事务,操作都是原子性
  4. 丰富特性:用于缓存,消息,按key设置过期时间,过期删除

Memcache对比

  1. 可以持久化
  2. 数据类型多样
  3. 底层模型不同,有自己的vm机制,寄生系统调用系统函数时间

单线程

使用队列技术将访问串行化

持久化

  1. RDB机制(在某一时间点上的切面)
    优点
    (1)只有一个文件 dump.rdb,方便持久化。
    (2)容灾性好,一个文件可以保存到安全的磁盘。
    (3)性能最大化,fork 子进程来完成写操作,让主进程继续处理命令,所以是 IO最大化。使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了 redis的高性能)
    (4)相对于数据集大时,比 AOF 的启动效率更高。
    缺点
    只能保证最终一致性,存在数据丢失风险
  2. AOF机制
    优点:
    (1)数据安全,aof 持久化可以配置 appendfsync 属性,有 always,每进行一次命令操作就记录到 aof 文件中一次。
    (2)通过 append 模式写文件,即使中途服务器宕机,可以通过 redis-check-aof工具解决数据一致性问题。
    (3)AOF 机制的 rewrite 模式。AOF 文件没被 rewrite 之前(文件过大时会对命令进行合并重写),可以删除其中的某些命令(比如误操作的 flushall))
    缺点:
    (1)AOF 文件比 RDB 文件大,且恢复速度慢。
    (2)数据集大的时候,比 rdb 启动效率低。

常见问题以及解决方案

  1. Master不进行内存快照,会阻塞主线程工作,当数据量大时候会影响redis读写性能。
  2. 数据重要的话,使其中一个从节点进行AOF备份,策略为1s一次,减少数据的丢失。
  3. 主从数据提升复制速度,使用一个局域网。
  4. 注意加从节点时该台服务器的负载。
  5. 主从复制采用链表结构解决单点故障,实现主从替换。
  6. 作为热数据进行双写,更新则删除缓存。(如果当时数据没删掉,可能会有脏数据),如果要确保强一致性,则通过异步发送消息方式进行删除重试。

缓存过期策略

  1. 定时删除,设置过期时间的同时指定一个定时器,定时取执行删除操作
  2. 惰性删除:直到数据再次被查询时再判断是否应该删除
  3. 定期删除:单独一个线程去检查, 删除过期键

`

淘汰策略

  • volatile lru 从设置过期时间的数据中淘汰最近没有用过的

  • volatile random 从设置过期时间的数据中随机淘汰

  • volatile-ttl 从设置过期时间的数据中淘汰快到期的

  • allkeys-lru 从所有数据集中淘汰最近没有用到的

  • allkeys-random 从所有数据集中随机淘汰

  • no-enviction 废除淘汰策略

  • 策略规则

  • 1.如果数据呈现幂律分布,也就是一部分数据常用一部分不常用,使用lru

  • 2.如果出现平等分布,所有数据访问频率相同,使random

同步机制

  • 主节点做bgsave
  • 同时将后续修改记录到内存buffer中
  • 开始同步rdb文件
  • 从节点加载rdb到内存
  • 执行主节点期键的修改操作记录
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值