Redis(二)事务+配置文件详解

本文详细介绍了Redis的事务特性,包括原子性、错误处理和监控机制。同时,讲解了Redis的持久化策略,如SAVE、RDB与AOF,以及相关配置参数,如fsync策略和复制功能。此外,还涵盖了Redis的安全性和网络配置。
摘要由CSDN通过智能技术生成
  • Redis中单条语句保证原子性,整个事务不保证原子性。当出现语法错误时,所有的命令都不会执行;语法没有错误的,只会有一条语句返回错误。
  • Redis事务中没有隔离级别的概念。

开启事务

MULTI

执行事务

EXEC

放弃事务

DISCARD

监控

WACTH key [key …] 等同于一个乐观锁,如果监视的key中的值发生,则整个事务放弃

取消监控

UNWATCH 如果执行EXEC或者DISCARD,则不需要手动执行UNWATCH

################################## INCLUDES ###################################

# 可以通过include导入其他配置文件
include /path/to/local.conf
include /path/to/other.conf

################################## NETWORK #####################################

# 绑定IP 0.0.0.0表示通配  可以自己配置指定的地址
bind 0.0.0.0

# 保护模式配置
protected-mode yes

# 对外暴露的接口
port 6379

################################# GENERAL #####################################

# 以守护进程的方式运行
daemonize yes

# 配置文件的pid文件  如果以后台方式运行则需要指定一个pid文件
pidfile /var/run/redis_6379.pid

# 日志级别
# debug (a lot of information, useful for development/testing)
# verbose (many rarely useful info, but not a mess like the debug level)
# notice (moderately verbose, what you want in production probably) 生产环境
# warning (only very important / critical messages are logged)
loglevel notice

# 日志文件名
logfile ""

# 默认数据库数量
databases 16

################################ SNAPSHOTTING  ################################
# 如果同时发生了给定的秒数和给定的针对数据库的写操作数,则将保存数据库。
# 也可以通过添加带有单个空字符串参数的保存指令来删除所有先前配置的保存点
# save ""

# 900秒内,至少有1个key修改过,则进行持久化操作
save 900 1
# 300秒内,至少有10个key修改过,则进行持久化操作
save 300 10
# 900秒内,至少有10000个key修改过,则进行持久化操作
save 60 10000

# 持久化失败后是否继续工作
stop-writes-on-bgsave-error yes

# 是否压缩rdb文件  此操作会消耗CPU的资源
rdbcompression yes

# 从RDB版本5开始,在文件末尾放置了CRC64校验和。
# 这使该格式更能抵抗损坏,但是在保存和加载RDB文件时会降低性能(约10%),因此可以禁用该格式以获得最佳性能。
# 在禁用校验和的情况下创建的RDB文件的校验和为零,这将指示加载代码跳过该校验。
# 是否开启rdb校验
rdbchecksum yes

# rdb文件保存目录
dir ./

################################## SECURITY ###################################

# 可以设置Redis密码
# requirepass foobared

################################### CLIENTS ####################################

# 最大客户端连接数
# maxclients 10000

############################## MEMORY MANAGEMENT ################################

# 设置内存使用限制为指定的字节数。
# 达到内存限制时,Redis将尝试根据所选的逐出策略来删除密钥(请参阅maxmemory-policy)。
# 如果Redis无法根据该策略删除密钥,或者如果该策略设置为'noeviction',则Redis将开始对将使用更多内存的命令(例如SET,LPUSH等)进行错误回复,并且将继续回复诸如GET之类的只读命令。
# 当将Redis用作LRU或LFU缓存,或为实例设置硬盘限制(使用'noeviction'策略)时,此选项通常很有用。
# 警告:如果您将副本附加到实例上且启用了maxmemory,则会从使用的内存数量中减去提供副本所需的输出缓冲区的大小,因此网络问题/重新同步不会触发回收键的循环,反过来,副本的输出缓冲区中充满了被逐出的键DEL,触发了更多键的删除操作,依此类推,直到数据库完全清空。
# 简而言之...如果您附加了副本,建议您为maxmemory设置一个下限,以便系统上有一些可用RAM用于副本输出缓冲区(但是如果策略为'noeviction',则不需要这样做) 。
#
# maxmemory <bytes>

# MAXMEMORY POLICY:
# 达到maxmemory后,Redis将如何选择要删除的内容。您可以选择以下五种行为:
# noeviction:不会继续服务写请求(del请求可以继续),读请求可以继续进行。这样保证不丢失数据,但会让线上服务不能持续进行。(默认)
# volatile-lru:尝试淘汰设置了过期时间的key,最少使用的key会优先淘汰(LRU)。没设置过期时间的key不会被淘汰,保证需要持久化的数据不会丢失。
# volatile-random:从具有过期集的key中随机删除一个。
# volatile-lfu:只对设置了过期时间的key使用LFU移除。
# volatile-ttl:key的剩余存活时间(time to live)小的优先淘汰。
# allkeys-lru:与volatile-lru的区别就是,没有设置淘汰时间的key也会被淘汰。
# allkeys-random:随机删除密钥。
# allkeys-lfu:使用LFU删除密钥。
#
# LRU, LFU和 volatile-ttl 均使用近似随机算法实现。
# 注意:使用上述任何策略时,如果没有合适的退出键,Redis将在写入操作中返回错误。
#
# 默认:
# maxmemory-policy noeviction

############################## APPEND ONLY MODE ###############################

# 默认情况下,Redis异步将数据集转储到磁盘上。 此模式在许多应用程序中已经足够好,但是Redis进程问题或停电可能会导致几分钟的写入丢失(取决于配置的保存点)。
# 只进行追加文件是一种替代的持久性模式,可提供更好的持久性。 例如,使用默认的数据fsync策略(请参阅配置文件中的稍后内容),Redis在严重的事件(例如服务器断电)中可能仅损失一秒钟的写操作,如果Redis进程本身发生了问题,则可能丢失一次写操作,操作系统仍在正常运行。
# 可以同时启用AOF和RDB持久性,而不会出现问题。 如果在启动时启用了AOF,则Redis将加载AOF,即该文件具有更好的持久性保证。

appendonly no

# aof文件的文件名
appendfilename "appendonly.aof"

# fsync()调用告诉操作系统将数据实际写入磁盘,而不是等待输出缓冲区中的更多数据。某些操作系统确实会刷新磁盘上的数据,而另一些操作系统只会尝试尽快执行此操作。
#
# Redis支持三种不同的模式:
#
# no:不调用fsync,只要让OS在需要时刷新数据即可。最快。
# always:每次写入仅附加日志后执行fsync。慢,最安全。
# everysec:每秒仅同步一次fsync。折中。
#
# 默认值为“ everysec”,因为这通常是速度和数据安全性之间的正确折中。您可以了解是否可以将其放宽为“ no”,以便操作系统在需要时刷新输出缓冲区,以获得更好的性能(但如果您可以忍受某些数据丢失的想法,请考虑使用默认的持久性模式(即快照),或者相反,请使用“总是”,该速度非常慢,但比securesec更安全。
# 如果不确定,请使用“ everysec”。

# appendfsync always
appendfsync everysec
# appendfsync no

################################# REPLICATION #################################

# 1)Redis复制是异步的,但是可以将主服务器配置为停止接收写操作,如果它似乎未与至少给定数量的副本连接。
# 2)如果复制链接在相对较短的时间内丢失,则Redis副本能够与主副本执行部分重新同步。您可能需要根据需要将复制积压大小(请参阅此文件的下一部分)配置为合理的值。
# 3)复制是自动的,不需要用户干预。网络分区副本之后,副本会自动尝试重新连接到母版并与它们重新同步。
#
replicaof 127.0.0.1 6379

# 如果主服务器受密码保护(使用下面的“ requirepass”配置指令),则可以在开始复制同步过程之前告诉副本服务器进行身份验证,否则主服务器将拒绝副本请求。
#
# masterauth <master-password>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值