Redis 相关知识

Redis的事物

multi命令:开启事物命令,开启后将任务放在队列中

exec:执行命令

discard:回滚

Redis的原子性

事物中执行的命令执行失败,不具备原子性

事物在执行的命令如果有误(语法错误),具备原子性

watch和unwatch关键字用法

当watch了num1就监视了num1的值,在执行事物的命令时,执行前,num1的值发生了改变,则事物取消

保证在事物操作一个key时,key不能被其他事物或客户端修改

watch是基于CAS算法完成的

CAS算法

比较并交换,是一种无锁算法,实现多个线程在操作同一个资源时保持同步性

实现过程:有几个记录值,分别是旧值、新值和更新值,当要开始操作资源时,先在线程的缓存中记录一个旧值,开始对值进行修改记录到更新值中

在java中可以使用atomicInteger来实现CAS算法

Redis的新特性5.0

Redis的stream数据类型,能满足消息队列的全部需求

xread 只读,不消费

RDB备份的工作方式

1.Redis备份时,调用forks启动一个子进程,redis同时拥有父进程和子进程,父进程负责redis的读写工作,子进程负责rdb备份

2.子进程有一个虚拟的内存和父进程共用的实际的虚拟物理内存,在开始备份的这点,子进程虚拟内存的数据就确定了,但父类进程仍然可以进行读写工作,这时候的读写工作不会被备份

AOF方式

备份的不是数据的二进制内容,备份的是每条修改的命令

AOF的缺点

1.AOF文件比RDB文件要大,通常采用文件名滚动的方式来存储,在恢复时比RDB麻烦,

AOF和RDB 的区别

1.AOF的同步性好,可以做到每秒、实施的备份,而RDB是时间极更新数量的触发,同步性差

2.AOF速度比RDB慢,但是AOF存储的数据比较完整

redis读写分离主从复制

作用:

  1. 读写分离主从复制:解决服务器的压力
  2. 容灾备份

如何配置主机和从机,:

  1. 通过命令的方式,在redis中使用slaveof命令指定 主机是哪台机器
posted @ 2024-11-09 13:22  Reisen7  阅读(14)  评论(0)    收藏  举报  来源