当前位置:首页 > 文章列表 > 数据库 > Redis > Redis中的配置文件,数据持久化,事务

Redis中的配置文件,数据持久化,事务

来源:脚本之家 2023-02-25 09:43:05 0浏览 收藏

有志者,事竟成!如果你在学习数据库,那么本文《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 :配置复合的快照触发条件,即Redis 在seconds秒内key改变changes次,Redis把快照内的数据保存到磁盘中一次。默认的策略是:

  • 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学习网公众号了解相关技术文章。

版本声明
本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
Redis的数据复制过程详解Redis的数据复制过程详解
上一篇
Redis的数据复制过程详解
redis实现多级缓存同步方案详解
下一篇
redis实现多级缓存同步方案详解
查看更多
最新文章
查看更多
课程推荐
  • 前端进阶之JavaScript设计模式
    前端进阶之JavaScript设计模式
    设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
    542次学习
  • GO语言核心编程课程
    GO语言核心编程课程
    本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
    511次学习
  • 简单聊聊mysql8与网络通信
    简单聊聊mysql8与网络通信
    如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
    498次学习
  • JavaScript正则表达式基础与实战
    JavaScript正则表达式基础与实战
    在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
    487次学习
  • 从零制作响应式网站—Grid布局
    从零制作响应式网站—Grid布局
    本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
    484次学习
查看更多
AI推荐
  • 千音漫语:智能声音创作助手,AI配音、音视频翻译一站搞定!
    千音漫语
    千音漫语,北京熠声科技倾力打造的智能声音创作助手,提供AI配音、音视频翻译、语音识别、声音克隆等强大功能,助力有声书制作、视频创作、教育培训等领域,官网:https://qianyin123.com
    95次使用
  • MiniWork:智能高效AI工具平台,一站式工作学习效率解决方案
    MiniWork
    MiniWork是一款智能高效的AI工具平台,专为提升工作与学习效率而设计。整合文本处理、图像生成、营销策划及运营管理等多元AI工具,提供精准智能解决方案,让复杂工作简单高效。
    89次使用
  • NoCode (nocode.cn):零代码构建应用、网站、管理系统,降低开发门槛
    NoCode
    NoCode (nocode.cn)是领先的无代码开发平台,通过拖放、AI对话等简单操作,助您快速创建各类应用、网站与管理系统。无需编程知识,轻松实现个人生活、商业经营、企业管理多场景需求,大幅降低开发门槛,高效低成本。
    106次使用
  • 达医智影:阿里巴巴达摩院医疗AI影像早筛平台,CT一扫多筛癌症急慢病
    达医智影
    达医智影,阿里巴巴达摩院医疗AI创新力作。全球率先利用平扫CT实现“一扫多筛”,仅一次CT扫描即可高效识别多种癌症、急症及慢病,为疾病早期发现提供智能、精准的AI影像早筛解决方案。
    98次使用
  • 智慧芽Eureka:更懂技术创新的AI Agent平台,助力研发效率飞跃
    智慧芽Eureka
    智慧芽Eureka,专为技术创新打造的AI Agent平台。深度理解专利、研发、生物医药、材料、科创等复杂场景,通过专家级AI Agent精准执行任务,智能化工作流解放70%生产力,让您专注核心创新。
    98次使用
微信登录更方便
  • 密码登录
  • 注册账号
登录即同意 用户协议隐私政策
返回登录
  • 重置密码