Redis中的配置文件,数据持久化,事务
来源:脚本之家
时间:2023-02-25 09:43:05 298浏览 收藏
有志者,事竟成!如果你在学习数据库,那么本文《Redis中的配置文件,数据持久化,事务》,就很适合你!文章讲解的知识点主要包括事务、redis配置文件、数据持久化,若是你对本文感兴趣,或者是想搞懂其中某个知识点,就请你继续往下看吧~
一、配置文件
Redis的配置文件存放在Redis的安装根目录下
Windows 版本的 Redis 是 Microsoft 的开源部门提供的 Redis. 这个版本的 Redis 适合开发人员学习使用,生产环境中使用 Linux 系统上的 Redis;博主直接在本机上安装操作
Windows下是 redis.windows-service.conf;Linux下是 redis.conf
1、Redis 的网络相关配置
(1)bind:绑定IP地址,其它机器可以通过此IP访问Redis,默认绑定127.0.0.1,也可以修改为本机的IP地址
(2)port:配置Redis占用的端口,默认是6379
(3)tcp-keepalive:TCP连接保活策略,可以通过tcp-keepalive配置项来进行设置,单位为秒,假如设置为60秒,则server端会每60秒向连接空闲的客户端发起一次ACK请求,以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接
如果设置为0,则不会进行保活检测。
2、Redis的常规配置
(1)loglevel:日志级别,开发阶段可以设置成debug,生产阶段通常设置为notice或者warning
(2)logfile:指定日志文件名,如果不指定,Redis只进行标准输出。要保证日志文件所在的目录必须存在,文件可以不存在。还要在redis启动时指定所使用的配置文件,否则配置不起作用
(3)databases:配置Redis数据库的个数,默认是16个
3、Redis的安全配置
requirepass:配置Redis的访问密码。默认不配置密码,即访问不需要密码验证
此配置项需要在protected-mode=yes时起作用
使用密码登录客户端:redis-cli -h ip -p 6379 -a pwd
二、数据持久化
redis是内存数据库,它把数据存储在内存中,这样在加快读取速度的同时也对数据安全性产生了新的问题,即当redis所在服务器发生宕机后,redis数据库里的所有数据将会全部丢失。
为了解决这个问题,redis提供了持久化功能——RDB和AOF(Append Only File)
1、RDB
RDB(Redis DataBase)是 Redis 默认的持久化方案。在指定的时间间隔内,执行指定次数的写操作,则会将内存中的数据写入到磁盘中。即在指定目录下生成一个dump.rdb文件。Redis重启会通过加载dump.rdb文件来恢复数据
save
- 15分钟内改变了1次
- 或者5分钟内改变了10次
- 或者1分钟内改变了1万次
如果要禁用Redis的持久化功能,则把所有的save配置都注释掉
2、AOF
AOF(Append Only File),Redis 默认不开启。它的出现是为了弥补RDB的不足(数据的不一致性),所以它采用日志的形式来记录每个写操作,并追加到文件中。
Redis 重启会根据日志文件的内容将写指令从前到后执行一次以完成数据的恢复工作。
Redis以日志的形式来记录每个写操作,将Redis执行过的所有写指令记录下来(读操作不记录)
AOF保存的文件是appendonly.aof文件
appendonly
:配置是否开启AOF,yes表示开启,no表示关闭。默认是no。appendfilename
:AOF保存文件名appendfsync
:AOF异步持久化策略
三、事务
事务:把一组数据库命令放在一起执行,保证操作原子性,要么同时成功,要么同时失败。
Redis的事务:允许把一组redis命令放在一起,把命令进行序列化,然后一起执行,保证部分原子性
Redis事务的常用命令:
1、multi
用于标记事务块的开始。Redis会将后续的命令逐个放入队列中,然后才能使用EXEC命令原子化地执行这个命令序列
2、exec
在一个事务中执行所有先前放入队列的命令,然后恢复正常的连接状态。
如果在把命令压入队列的过程中报错,则整个队列中的命令都不会执行,执行结果报错;
如果在压队列的过程中正常,在执行队列中某一个命令报错,则只会影响本条命令的执行结果,其它命令正常运行;
当使用WATCH命令时,只有当受监控的键没有被修改时,EXEC命令才会执行事务中的命令;而一旦执行了exec命令,之前加的所有watch监控全部取消
3、discard
清除所有先前在一个事务中放入队列的命令,并且结束事务。
如果使用了WATCH命令,那么DISCARD命令就会将当前连接监控的所有键取消监控
4、watch
watch key [key …]
当某个事务需要按条件执行时,就要使用这个命令将给定的键设置为受监控的。
如果被监控的key值在本事务外有修改时,则本事务所有指令都不会被执行。
Watch命令相当于关系型数据库中的乐观锁
5、unwatch
清除所有先前为一个事务监控的键。
如果在watch命令之后你调用了EXEC或DISCARD命令,那么就不需要手动调用UNWATCH命令
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持golang学习网。
文中关于redis的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《Redis中的配置文件,数据持久化,事务》文章吧,也可关注golang学习网公众号了解相关技术文章。
-
138 收藏
-
187 收藏
-
412 收藏
-
448 收藏
-
114 收藏
-
342 收藏
-
361 收藏
-
159 收藏
-
164 收藏
-
221 收藏
-
156 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习