网站首页> 博客> Redis持久化和事务、分布式锁

Redis持久化和事务、分布式锁

好文 1667
xamin
xamin 2020-04-04
收藏

1. 设置redis aof持久化。

(1) Redis支持两种持久化方式,默认是开启RDB持久化方式的,我们配置AOF的持久化方式,以redis5.0来配置

(2) redis 默认是关闭AOF持久化模式 appendonly   no  要开启把no修改成YES appendfilename "appendonly.aof" 持久化的文件名称,一般会按照端口来命名

(3) 继续往下看AOF的配置,写入磁盘策略,默认值everysec,每秒写一次,always对硬盘压力大,no对硬盘压力最小,丢失数据风险最大.

(4) no-appendfsync-on-rewrite 是否在后台写时同步单写,默认是no,设置为no时表示新进程set会被阻塞,yes的时候新进程set不会被阻塞,等待后台所有执行完成以后再执行这部分set写入aof文件.

(5) 保存退出重启redis ,查看一下配置

2. rdbaof的区别是什么?及应用场景

 RDB持久化是把当前进程数据生成快照保存到硬盘的过程,触发RDB持久化过程分为手动触发自动触发

重点 :redis提供两种方式进行持久化,一种是RDB持久化(原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化),另外一种是AOF持久化(原理是将Reids的操作日志以追加的方式写入文件)

3.如何实现redis事务?

Redis事务通常会使用MULTI,EXEC,WATCH等命令来完成,redis实现事务实现的机制与常见的关系型数据库有很大的却别,比如redis的事务不支持回滚,事务执行时会阻塞其它客户端的请求执行。redis事务从开始到结束通常会通过三个阶段:

1.事务开始

2.命令入队

3.事务执行

4. 请完成分布式锁操作、防死锁(详情请看文档的伪代码思想)

线程锁:主要用来给方法、代码块加锁。当某个方法或代码使用锁,在同一时刻仅有一个线程执行该方法或该代码段。线程锁只在同一JVM中有效果,因为线程锁的实现在根本上是依靠线程之间共享内存实现的,比如synchronized是共享对象头,显示锁Lock是共享某个变量(state)。

进程锁:为了控制同一操作系统中多个进程访问某个共享资源,因为进程具有独立性,各个进程无法访问其他进程的资源,因此无法通过synchronized等线程锁实现进程锁。

分布式锁:当多个进程不在同一个系统中,用分布式锁控制多个进程对资源的访问。

 

  • 没有任何评论
个评论
xamin

xamin (青铜)

2金币 (0)粉丝 (1)源码

(该家伙很懒,什么也没说!)

 

加入微信群,不定期分享源码和经验
签到活跃榜 连续签到送额外金币
最新博客
校园跑腿系统外卖系统软件平台大学生创业平台搭建 459
壹脉销客智能名片CRM系统小程序可二开源码交付部署 443
为啥没搞了 649
Nginx 的 5 大应用场景,太实用了! 929
CentOS 8-stream 安装Postgresql 详细教程 1086
JAVA智慧校园管理系统小程序源码 电子班牌 Sass 模式 1050
Java智慧校园系统源码 智慧校园源码 智慧学校源码 智慧校园管理系统源码 小程序+电子班牌 795
Java智慧校园系统源码 智慧校园源码 智慧学校源码 智慧校园管理系统源码 小程序+电子班牌 777
致远OA权限 1268
发博客会有金币吗 810