redis知识回顾

Redis

1、redis是什么

Redis(远程字典服务)是一个键值类型的内存数据库,支持多种数据结构、因为redis时单线程,所以线程安全,数据都是缓存在内存中

内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间

2、redis为什么单线程还那么快

redis是将所有的数据放在内存中,所以说单线程操作效率是最高的,多线程(cup上下文会切换,耗时的操作),对于内存系统来说没有上下文切换效率是块的。

3、五大数据类型及使用场景

String 计数器 粉丝数 统计多单位的数量
List 消息队列 消息排队
Set 共同好友 共同关注 通过集合的并集差集合集
Hash 用户的信息 或者一个网站的信息 适用于对象的存储
Zset 排行榜 成绩表 工资表

4、三种特殊类型

Geospatial 附近的人功能
Hyperloglog 网页的访问量
BigMaps(位存储)员工打卡

5、事务

Redis的单条命令是保证原子性的,但是redis事务不能保证原子性。
Redis事务的本质,一组命令的集合。事务中每条命令执行都会被序列化,执行过程按顺序执行,不允许其他命令的干扰。

一次性
顺序性
排他性

redis事务没有隔离级别的概念。
multi 开启事务
exec 执行事务

事务错误
代码语法错误(编译时异常)所有的命令不执行
代码逻辑错误(运行时异常) 其他命令可以正常运行,所以不保证事务的原子性

监控

悲观锁:很悲观,认为什么时候都会出现问题,无论做什么都会加锁。
乐观锁:认为什么时候都不会出现问题,所以不会上锁!更新数据的时候去不判断一下,在此期间是否有人修改过数据。
获取version
更新时比较version
redis 执行时可以通过watch来监视key

内存达到限制值的处理策略

volatile-lru 对设置了过期时间的key进行lru
allkeys-lru 删除lru算法的key
volatile-random 随机删除即将过期的key
allkey-random 随机删除
volatile-ttl 删除即将过期的
noeviction 永不过期 返回错误

持久化RDB

在指定的时间间隔,将内存的数据集快照写入数据库,在恢复的时候,直接读取快照文件,进行数据的回复,默认放在dump.rdb二进制文件中

save 900 1 如果900秒内至少一个key进行修改,进行持久化
save 300 10
save 60 10000
在这里插入图片描述

工作原理

在进行RDB时,redis主线程不会做io操作的,主线程会fork一个子线程来完成操作。
1、redis调用forks,同时拥有父进程和子进程
2、子进程将数据集写到一个临时的RDB文件冲
3、当子进程完成对RDB文件的写入时,redis用新的rdb文件代替原来的rdb文件,并删除旧的rdb文件

触发机制
save满足的情况下
执行flushall
退出redis

优点

1适合大规模数据的回复,对数据的完整性要求不高

缺点

需要一定的时间间隔,如果redis发生宕机,最后一次修改的数据就没有了
fork进程时,会占用一定的内容空间

持久化AOF

快照功能并不是非常耐久,如果redis发生宕机,最后一次修改的数据就没有了

优点

每次修改都会同步,文件完整性号
每秒同步一次 可能会丢失一秒的数据

缺点

aof文件大于rdb,修复速度满 运行效率慢。
在这里插入图片描述

发布与订阅

subscribe 订阅频道
publish 发布消息到频道

主从复制

是指将一台redis服务器的数据,复制到其他redis服务器,前者称为主节点master 后者成为从节点slave (主节点以写为主,从节点以读为主)
作用
数据冗余
故障恢复
负载均衡
高可用

为什么使用集群
单台服务器难以负载大量请求
单台服务器故障率高
单台服务器内存有限

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值