redis学习笔记(二)- 作为数据库、缓存

一、redis命令

1、管道

yum install nc // 安装nc,用于连接redis

2、Pub/Sub(直播聊天室信息实现)

3、RedisBloom

地址:redis.io -》 modules

4、conf中内存管理

一般大小1-10个G 太大则迁移成本等较大
LFU :次数使用
LRU :最少使用(时间维度)

二、redis作为数据库/缓存的区别

1、缓存数据是不重要,不是全量数据,缓存应该随着访问变化。【热数据】redis里的数据怎么随着业务变化,只保留热数据。内存大小是有限的,这是瓶颈,需要考虑;
2、缓存:追求极速,数据可以丢;数据库:数据绝对不能丢,速度+持久性;【内存中的东西会掉电丢失】

缓存数据清除逻辑:

key的有效期:业务逻辑的推动【数据保留一天的有效期】 给key设置时长,读操作不影响时间过期;写操作会剔除时间有效期,因此开发过程中需要通过业务逻辑重新设定;
expire k1 50 //给k1设置50秒过期时间
业务运转:内存有限,随着访问的变化,要淘汰冷数据。

2、Redis如何清除过期keys
每10s做一次随机keys检测,过期key的百分比25%,高于25则会重复进行随机检测。

三、redis单机持久化

1、实现持久化的技术

存储层:a、快照/副本;b、日志;
2、linux中管道 |
a 衔接,前一个命令作为后一个命令的输入

1、RDB(redis镜像)

RDB具有是时点性,优点:类似java中的序列化,恢复速度相对比较快。
镜像复制触发方式:

  • 人为触发(两种):save(前台阻塞;使用场景:关机维护前,进行全量备份);bgsave(后台异步阻塞,通过fork()触发创建子进程;使用场景:运行时)
  • 配置文件中给
    弊端
  1. 不支持拉链。只有一个dump.rdb文件
  2. 做全量备份时,窗口期间发生断电容易导致数据丢失。

出bgsave规则:实际使用的是sava标识;

2、AOF

基本概念

  1. redis的写操作记录到文件中。(丢失的数据少;redis中RDB和AOF可以同时开启;如果开启了AOF,只会用AOF恢复;4.0之后AOF包含RDB全量,日志是增量备份,相对较快)

弊端

  1. 随着时间的运行,日志文件体量无限变大 -> 导致恢复慢;

扩展:
日志的优点是可以保存更全的信息,如何实际一个方案让日志AOF足够小;
a) hdfs利用fsimage+edits.log结合;让日志只记录增量数据
b) redis4.0之前,利用重写策略,删除抵消的命令,合并重复的命令,最终还是一个纯指令的日志文件;
c) redis4.0之后,日志记录一定量的时候触发重写,会将老的数据RDB到aof文件中,后面增量备份新的指令数据

  1. redis是内存数据库,写操作会触发IO;

redis中默认配置文件aof关闭,appendfsync为everysec(有三个级别:always,everysec,no)
三种级别的调整的原理:redis写入操作会调用kenel(内核)中的文件符(fd8),实际会将写入操作先放进开辟的一个buffer(缓存4k大小)中,然后再写入(flush)磁盘中。always:每次指令操作写入;no:等buffer满了再写入;everysec:每秒写入;
在这里插入图片描述

  1. 范德萨

四、主从复制

  • 1、击穿
  • 2、雪崩
  • 3、
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值