在哪个网站做问卷好,单页面网站推广,美团网站界面设计,怎么把自己做的网页生成链接事务的定义#xff1a;
Redis中的事务是指一组命令的集合#xff0c;这些命令可以在一个原子操作中执行。在Redis中#xff0c;可以使用MULTI命令开始一个事务#xff0c;然后使用EXEC命令来执行事务中的所有命令#xff0c;或者使用DISCARD命令来取消事务。事务可以确保…事务的定义
Redis中的事务是指一组命令的集合这些命令可以在一个原子操作中执行。在Redis中可以使用MULTI命令开始一个事务然后使用EXEC命令来执行事务中的所有命令或者使用DISCARD命令来取消事务。事务可以确保在执行期间不会被其他客户端的命令中断并且可以保证事务中的所有命令要么全部执行成功要么全部失败。事务在Redis中通常用于执行一系列相关的命令以确保这些命令要么全部成功要么全部失败。
Redis中的事务主要是通过MULTI和EXEC这两个命令来实现的。MULTI用于开启一个事务事务开启之后所有的命令都会被放到一个队列中最后通过一个EXEC命名来执行事务中的所有命令。
Redis中的事务没有原子性并不能保证所有的命令都会执行成功。 上图使用 MULTI开启事务返回OK代表开启事务成功。上图中的(TX)就表示事务开始中,然后设置两个键值对这里返回QUEUED而不返回OK表示我们的命令已经被放到了队列中。 这时打开一个终端获取键值发现为空这时因为事务还未执行。 通过EXEC命令来执行事务。 在执行事务后再次获取键值就可以获取到了。 事务中的命令出现错误并不会影响后面命令的执行。这里开启事务后让这三个键自增由于k4是一个字符类型并不能解析为整数所有就会出现错误。 观察上图获取到的值发现Redis事务中命令出现错误并不会影响到正确命令的执行。 持久化的定义
在Redis中持久化是指将数据存储在磁盘上以便在Redis重启时可以恢复数据。Redis支持两种主要的持久化方式
1. RDBRedis DataBase持久化RDB持久化通过将Redis在内存中的数据快照写入磁盘来实现持久化。管理员可以配置Redis定期将数据快照写入磁盘以便在Redis重启时恢复数据。RDB持久化适合于对数据一致性要求不是非常高的场景。
2. AOFAppend-Only File持久化AOF持久化通过将Redis接收到的写命令追加到一个日志文件中来实现持久化。当Redis重启时它会重新执行这些写命令来恢复数据。AOF持久化通常比RDB持久化更加安全因为它可以提供更好的数据一致性保证。
持久化使得Redis可以在重启后恢复数据从而避免了数据丢失的风险。管理员可以根据实际需求选择合适的持久化方式并根据需要对持久化参数进行调优。
持久化是Redis中一个基于内存的数据库如果没有持久化那么一旦服务器重启或者断电那么之前的所有数据都会丢失。这对于一个数据库是非常致命的。 第一种方式(RDB) 是某一个时间点上数据的完整副本可以通过配置文件中的save参数来配置。 第一个参数表示秒数第二个参数表示修改次数。 有上图三种默认配置。
第一种解释为3600s之内有一次修改就进行一次快照。其他同理。
除了使用配置文件来自动触发快照之外 还可以使用save命令手工触发快照 上图的dump.conf就是生成的快照文件。
快照文件的缺点
如果服务器在快照之后宕机了那么最后一次快照之后的所有修改内容都会丢失掉。 考虑到快照文件的缺点所有RDB适合更适合用来做备份。
还有一个问题由于生产环境中我们为Redis开辟的内存区域一般都比较大那么内存中的数据同步到硬盘这个过程就会持续比较长的时间这段时间内Redis都处于一个阻塞的状态不能接收任何请求。
所以为了应对这种情况Redis提供了叫做bgsave的命令这个命令会单独创建一个子进程来负责将内存中的数据写入到硬盘中这样的话主进程就可以继续处理请求了。但是这个过程中还会有一定的性能损耗因为fork一个子进程也是需要时间的这段时间内Redis还是不能处理任何请求。没有办法做到秒级的快照。 为了解决这种问题Redis又提供了另一种叫AOF的持久化方式。他的原理是在执行写命令的时候不仅会将命令写到内存中还会将命令写入到一个追加的文件中这个文件就是AOF。他会以日志的形式来记录每一个写操作。当Redis重启的时候就会通过重新执行AOF文件中的命令来在内存中重建整个数据库的内容。 开启AOF的方式只需要在AOF的配置文件中将appendonly后面的no修改为yes就好了然后保存退出配置文件就好。
进入配置文件的命令为
vi redis.conf
然后输入/append就可查看append的配置文件了前面的查看save配置文件同理。