Redis使用手册
文章平均质量分 72
一些 Redis 的 抄书
norang
这个作者很懒,什么都没留下…
展开
-
Redis 中的 复制(主从复制) 可写的从服务器 使用可写从服务器的注意事项
这里写目录标题18.6 可写的从服务器使用可写从服务器的注意事项参考目录18.6 可写的从服务器 从Redis 2.6版本开始,Redis的从服务器在默认状态下只允许执行读命令。如果用户尝试对一个只读从服务器执行写命令,那么从服务器将返回以下错误信息: Redis之所以将从服务器默认设置为只读服务器,是为了确保从服原创 2021-09-01 15:20:52 · 1051 阅读 · 0 评论 -
Redis 中的 复制(主从复制) 降低数据不一致情况出现的概率
18.5 降低数据不一致情况出现的概率 本章前面在介绍复制原理时曾经提到过,因为复制的在线更新操作以异步方式进行,所以当主从服务器之间的连接不稳定,或者从服务器未能 收到主服务器发送的更新命令时,主从服务器就会出现数据不一致的情况。 为了尽可能地降低数据不一致的出现概率,Redis从2.8版本开始引入了 两个以min-原创 2021-09-01 15:05:54 · 298 阅读 · 0 评论 -
Redis 中的 复制(主从复制) 无须硬盘的复制
18.4 无须硬盘的复制 正如之前所说,主服务器在进行完整同步的时候,需要在本地创建RDB 文件,然后通过套接字将这个RDB文件传送给从服务器。 但是,如果主服务器所在宿主机器的硬盘负载非常大或者性能不佳,那么创建RDB文件引起的大量硬盘写入将对主服务器的性能造成影响,并导致复制进程变慢。 &n原创 2021-09-01 14:48:15 · 504 阅读 · 0 评论 -
Redis 中的 复制(主从复制) 数据同步 完整同步 在线更新 部分同步
18.3 数据同步当用户将一个服务器设置为从服务器,让它去复制另一个服务器的时 候,主从服务器需要通过数据同步机制来让两个服务器的数据库状态保持一致。本节将对Redis主从服务器的数据同步机制进行介绍,理解同步机制的 运作原理是阅读本章后续内容的基础。18.3.1 完整同步当一个Redis服务器接收到REPLICAOF命令,开始对另一个服务器进行复制的时候,主从服务器会执行以下操作:1)主服务器执行BGSAVE命令,生成一个RDB文件,并使用缓冲区存储起在BGSAVE命令之后执行的所有写命令。2原创 2021-09-01 14:36:15 · 588 阅读 · 0 评论 -
Redis 中的 复制(主从复制) ROLE:查看服务器的角色 主服务器执行ROLE命令 从服务器执行ROLE命令
这里写目录标题18.2 ROLE:查看服务器的角色18.2.1 主服务器执行ROLE命令18.2.2 从服务器执行ROLE命令18.2.3 其他信息参考目录18.2 ROLE:查看服务器的角色 用户可以通过执行ROLE命令来查看服务器当前担任的角色: ROLE命令在主服务器或者从服务器上执行将产生不同的结果,以下将原创 2021-08-28 12:38:48 · 980 阅读 · 0 评论 -
Redis 中的 复制(主从复制) REPLICAOF:将服务器设置为从服务器 通过配置选项设置从服务器 取消复制
这里写目录标题18.1 REPLICAOF:将服务器设置为从服务器复制命令的命名变化18.1.1 通过配置选项设置从服务器18.1.2 取消复制18.1.3 其他信息参考目录18.1 REPLICAOF:将服务器设置为从服务器复制命令的命名变化 在很长的一段时间里,Redis一直使用SLAVEOF作为复制命令,但是从 5.0.0版本开始,Redis正式将SLAVEOF命令改名为REPLICAOF命令并逐渐废弃原创 2021-08-28 11:21:08 · 7096 阅读 · 0 评论 -
Redis 中的 复制(主从复制)
第18章 复制 复制功能是Redis提供的多机功能中最基础的一个,这个功能是通过主从复制(master-slave replication)模式实现的,它允许用户为存储着目标数据库的服务器创建出多个拥有相同数据库副本的服务器,其中存储 目标数据库的服务器被称为主服务器(master server),而存储数据库 副本的服务器则被称为从服务器(slave server,或者称为replica),如图18-1所示。原创 2021-08-24 15:35:45 · 447 阅读 · 0 评论 -
Redis 中的 集合(Set) 重点回顾
5.12 重点回顾 ·集合允许用户存储任意多个各不相同的元素。 ·所有针对单个元素的集合操作,复杂度都为O(1)。 ·在使用SADD命令向集合中添加元素时,已存在于集合中的元素会自动被忽略。 &nbs原创 2021-08-24 10:44:07 · 111 阅读 · 0 评论 -
Redis 中的 集合(Set) SDIFF、SDIFFSTORE:对集合执行差集计算
这里写目录标题5.11 SDIFF、SDIFFSTORE:对集合执行差集计算5.11.1 SDIFFSTORE命令5.11.2 其他信息执行集合计算的注意事项参考目录5.11 SDIFF、SDIFFSTORE:对集合执行差集计算 SDIFF命令可以计算出给定集合之间的差集,并返回差集包含的所有元素: SDIFF命令原创 2021-08-24 10:35:16 · 1278 阅读 · 0 评论 -
Redis 中的 集合(Set) SUNION、SUNIONSTORE:对集合执行并集计算
这里写目录标题5.10 SUNION、SUNIONSTORE:对集合执行并集计算5.10.1 SUNIONSTORE命令5.10.2 其他信息参考目录5.10 SUNION、SUNIONSTORE:对集合执行并集计算 SUNION命令可以计算出用户给定的所有集合的并集,然后返回这个并集包含的所有元素: 比如对于以下原创 2021-08-24 10:14:18 · 646 阅读 · 0 评论 -
Redis 中的 集合(Set) SINTER、SINTERSTORE:对集合执行交集计算
这里写目录标题5.9 SINTER、SINTERSTORE:对集合执行交集计算5.9.1 SINTERSTORE命令5.9.2 其他信息参考目录5.9 SINTER、SINTERSTORE:对集合执行交集计算 SINTER命令可以计算出用户给定的所有集合的交集,然后返回这个交集包含的所有元素: 比如对于以下这两个集原创 2021-08-24 10:03:06 · 665 阅读 · 0 评论 -
Redis 中的 集合(Set) SPOP:随机地从集合中移除指定数量的元素 SPOP与SRANDMEMBER的区别
这里写目录标题5.8 SPOP:随机地从集合中移除指定数量的元素5.8.1 SPOP与SRANDMEMBER的区别5.8.2 其他信息参考目录5.8 SPOP:随机地从集合中移除指定数量的元素 通过使用SPOP命令,用户可以从集合中随机地移除指定数量的元素。 SPOP命令接受一个可选的count参数,用于指定需要被移除的元素数量。如果用户没有给定这个参数,那么SPOP命令默认只移除一个元素: &n原创 2021-08-24 09:50:42 · 1945 阅读 · 2 评论 -
Redis 中的 集合(Set) SRANDMEMBER:随机获取集合中的元素 返回指定数量的元素
这里写目录标题5.7 SRANDMEMBER:随机获取集合中的元素5.7.1 返回指定数量的元素5.7.2 其他信息参考目录5.7 SRANDMEMBER:随机获取集合中的元素 通过使用SRANDMEMBER命令,用户可以从集合中随机地获取指定数量的元素。 SRANDMEMBER命令接受一个可选的count参数,用于原创 2021-08-24 09:27:25 · 4812 阅读 · 0 评论 -
Redis 中的 集合(Set) SISMEMBER:检查给定元素是否存在于集合
5.6 SISMEMBER:检查给定元素是否存在于集合 通过使用SISMEMBER命令,用户可以检查给定的元素是否存在于集合当中: SISMEMBER命令返回1表示给定的元素存在于集合当中;返回0则表示给定元素不存在于集合当中。 &n原创 2021-08-23 23:39:52 · 5771 阅读 · 0 评论 -
Redis 中的 集合(Set) SCARD:获取集合包含的元素数量
5.5 SCARD:获取集合包含的元素数量 通过使用SCARD命令,用户可以获取给定集合的大小,即集合包含的 元素数量: 以下代码展示了如何使用SCARD命令去获取databases集合、fruits集合以及favorite-numbers集合的大小:其他信息 &n原创 2021-08-23 23:31:13 · 2755 阅读 · 0 评论 -
Redis 中的 集合(Set) SMEMBERS:获取集合包含的所有元素
这里写目录标题5.4 SMEMBERS:获取集合包含的所有元素5.4.1 元素的无序排列5.4.2 其他信息参考目录5.4 SMEMBERS:获取集合包含的所有元素 通过使用SMEMBERS命令,用户可以取得集合包含的所有元素: 以下代码展示了如何使用SMEMBERS命令去获取fruits集合、favorite-原创 2021-08-23 23:25:46 · 5281 阅读 · 0 评论 -
Redis 中的 集合(Set) SMOVE:将元素从一个集合移动到另一个集合 忽略不存在的元素 覆盖已存在的元素
这里写目录标题5.3 SMOVE:将元素从一个集合移动到另一个集合5.3.1 忽略不存在的元素5.3.2 覆盖已存在的元素5.3.3 其他信息参考目录5.3 SMOVE:将元素从一个集合移动到另一个集合 SMOVE命令允许用户将指定的元素从源集合移动到目标集合: SMOVE命令在移动操作成功执行时返回1。如果指定的原创 2021-08-21 18:30:03 · 1239 阅读 · 0 评论 -
Redis 中的 集合(Set)SREM:从集合中移除元素 忽略不存在的元素
这里写目录标题5.2 SREM:从集合中移除元素5.2.1 忽略不存在的元素5.2.2 其他信息参考目录5.2 SREM:从集合中移除元素 通过使用SREM命令,用户可以从集合中移除一个或多个已存在的元素: 这个命令会返回被移除的元素数量。 &原创 2021-08-21 18:19:54 · 2888 阅读 · 0 评论 -
Redis 中的 集合(Set) SADD:将元素添加到集合 忽略已存在元素
5.1 SADD:将元素添加到集合 通过使用SADD命令,用户可以将一个或多个元素添加到集合中: 这个命令会返回成功添加的新元素数量作为返回值。 以下代码展示了如何使用SADD命令去构建一个databases集合:&n原创 2021-08-21 18:11:41 · 3614 阅读 · 0 评论 -
Redis 中的 集合(Set)
第5章 集合 Redis的集合(set)键允许用户将任意多个各不相同的元素存储到集合 中,这些元素既可以是文本数据,也可以是二进制数据。虽然第4章中 介绍的列表键也允许我们存储多个元素,但集合与列表有以下两个明显的区别: ·列表可以存储重复元素,而集合只会存储非重复元素,尝试将一个已 存在的元素添加到集合将被忽略。&原创 2021-08-21 18:04:57 · 1418 阅读 · 0 评论 -
Redis 中的 持久化 重点回顾
15.7 重点回顾 ·Redis的持久化功能可以将存储在内存中的数据库数据以文件形式存储到硬盘,并在有需要时根据这些文件的内容实施数据恢复。 ·RDB持久化是一种全量持久化方式,可以创建出经过压缩的时间点二 进制快照文件,并通过载入文件中的二进制数据来实施数据恢复。这种 持久化的优点是可以高效地生成文件并且快速地实施数原创 2021-08-21 16:35:05 · 97 阅读 · 0 评论 -
Redis 中的 持久化 SHUTDOWN:关闭服务器 通过可选项指示持久化操作
这里写目录标题15.6 SHUTDOWN:关闭服务器15.6.1 通过可选项指示持久化操作15.6.2 其他信息参考目录15.6 SHUTDOWN:关闭服务器 用户可以通过执行SHUTDOWN命令来关闭Redis服务器: 在默认情况下,当Redis服务器接收到SHUTDOWN命令时,它将执行以下动作:原创 2021-08-21 16:26:30 · 1177 阅读 · 0 评论 -
Redis 中的 持久化 无持久化
15.5 无持久化 本章前面曾经提到过,即使用户没有显式地开启RDB持久化功能和AOF 持久化功能,Redis服务器也会默认使用以下配置进行RDB持久化: 如果用户想要彻底关闭这一默认的RDB持久化行为,让Redis服务器处 于完全的无持久化状态,那么可以在服务器启动时向它提供以下配置选项:  原创 2021-08-21 11:24:20 · 721 阅读 · 0 评论 -
Redis 中的 持久化 同时使用RDB持久化和AOF持久化
15.4 同时使用RDB持久化和AOF持久化 在Redis 4.0的RDB-AOF混合持久化功能出现之前,不少追求安全性的 Redis使用者都会同时使用RDB持久化和AOF持久化,但随着RDB-AOF 混合持久化功能的推出,同时使用两种持久化功能已经不再必要。 如果用户使用的是Redis 4.0之前的版本,那么同时使用原创 2021-08-21 11:18:11 · 2241 阅读 · 0 评论 -
Redis 中的 持久化 RDB-AOF混合持久化
15.3 RDB-AOF混合持久化 在前面的内容中,我们考察了Redis的两种持久化方式,它们都有各自的优点和缺点: ·RDB持久化可以生成紧凑的RDB文件,并且使用RDB文件进行数据恢复的速度也非常快,但是RDB的全量持久化模式可能会让服务器在停机 时丢失大量数据。 &原创 2021-08-21 11:08:16 · 616 阅读 · 0 评论 -
Redis 中的 持久化 AOF持久化 打开AOF持久化功能 设置AOF文件的冲洗频率 AOF重写 AOF持久化的优缺点
这里写目录标题15.2 AOF持久化15.2.1 打开AOF持久化功能15.2.2 设置AOF文件的冲洗频率15.2.3 AOF重写1.BGREWRITEAOF命令其他信息2.AOF重写配置选项15.2.4 AOF持久化的优缺点参考目录15.2 AOF持久化 与全量式的RDB持久化功能不同,AOF提供的是增量式的持久化功能, 这种持久化的核心原理在于:服务器每次执行完写命令之后,都会以协议文本的方式将被执行的命原创 2021-08-21 09:45:35 · 447 阅读 · 0 评论 -
Redis 中的 持久化 RDB持久化 SAVE:阻塞服务器并创建RDB文件 BGSAVE:以非阻塞方式创建RDB文件 通过配置选项自动创建RDB文件
这里写目录标题15.1 RDB持久化15.1.1 SAVE:阻塞服务器并创建RDB文件其他信息15.1.2 BGSAVE:以非阻塞方式创建RDB文件其他信息15.1.3 通过配置选项自动创建RDB文件1.同时使用多个save选项2.默认设置15.1.4 SAVE命令和BGSAVE命令的选择15.1.5 RDB文件结构1.总体结构2.数据库信息结构15.1.6 载入RDB文件15.1.7 数据丢失1.SAVE命令的停机情况2.BGSAVE命令的停机情况3.RDB持久化的缺陷参考目录15.1 RDB持久化&原创 2021-08-20 22:03:13 · 1449 阅读 · 0 评论 -
Redis 中的 持久化
第15章 持久化 正如之前所说,Redis与传统数据库的一个主要区别在于,Redis把所有 数据都存储在内存中,而传统数据库通常只会把数据的索引存储在内存中,并将实际的数据存储在硬盘中。 虽然Redis的数据存储方式使得用户可以以极快的速度读写服务器中的数据,但由于内存属于易失存储器(volatile storage)原创 2021-08-20 16:38:42 · 127 阅读 · 0 评论 -
Redis 中的 流水线与事务 重点回顾
13.4 重点回顾 ·在通常情况下,程序需要执行的Redis命令越多,需要进行的网络通信 次数也会越多,程序的执行速度也会变得越慢。通过使用Redis的流水 线特性,程序可以一次把多个命令发送给Redis服务器,这可以将执行 多个命令所需的网络通信次数从原来的N次降低为1次,从而使得程序 的执行效率得到显著提升。 ·通原创 2021-08-20 11:05:51 · 149 阅读 · 0 评论 -
Redis 中的 流水线与事务 带有乐观锁的事务 WATCH:对键进行监视 UNWATCH:取消对键的监视
这里写目录标题13.3 带有乐观锁的事务13.3.1 WATCH:对键进行监视其他信息13.3.2 UNWATCH:取消对键的监视其他信息示例:带有身份验证功能的锁示例:带有身份验证功能的计数信号量参考目录13.3 带有乐观锁的事务 本书在第2章实现了具有基本获取和释放功能的锁程序,并在第12章为 该程序加上了自动释放功能,但是这两个锁程序都有一个问题,那就是 它们的释放操作都是不安全的: &nbs原创 2021-08-20 10:54:14 · 276 阅读 · 0 评论 -
Redis 中的 流水线与事务 事务 MULTI:开启事务 EXEC:执行事务 DISCARD:放弃事务 事务的安全性 事务对服务器的影响 流水线与事务
这里写目录标题13.2 事务13.2.1 MULTI:开启事务其他信息13.2.2 EXEC:执行事务其他信息13.2.3 DISCARD:放弃事务其他信息13.2.4 事务的安全性13.2.5 事务对服务器的影响13.2.6 流水线与事务示例:实现mlpop()函数参考目录13.2 事务虽然Redis的LPUSH命令和RPUSH命令允许用户一次向列表推入多个元素,但是列表的弹出命令LPOP和RPOP每次却只能弹出一个元素:因为Redis并没有提供能够一次弹出多个列表元素的命令,所以为了方 便地执行原创 2021-08-19 23:49:51 · 265 阅读 · 0 评论 -
Redis 中的 流水线与事务 流水线
13.1 流水线 在一般情况下,用户每执行一个Redis命令,Redis客户端和Redis服务器 就需要执行以下步骤: 1)客户端向服务器发送命令请求。 2)服务器接收命令请求,并执行用户指定的命令调用,然后产生相应 的命令执行结果。原创 2021-08-19 15:43:23 · 367 阅读 · 0 评论 -
Redis 中的 流水线与事务 特性
第13章 流水线与事务 在前面的内容中,我们学习了如何使用不同的命令去操作Redis提供的 各种数据结构,如何使用数据库命令去对数据库中的各个键进行操作, 以及如何使用自动过期特性的相关命令去为键设置过期时间或者生存时 间。 在执行这些命令的时候,我们总是单独地执行每个命令,也就是说,先 将一个命令发送到服务器,等服务器执行完这个命令并将结果返回给客 户端之后,再执原创 2021-08-19 14:21:14 · 144 阅读 · 0 评论 -
Redis 自动过期 使用 TTL、PTTL:获取键的剩余生存时间
这里写目录标题12.4 TTL、PTTL:获取键的剩余生存时间12.4.1 没有剩余生存时间的键和不存在的键12.4.2 TTL命令的精度问题12.4.3 其他信息参考目录12.4 TTL、PTTL:获取键的剩余生存时间 在为键设置了生存时间或者过期时间之后,用户可以使用TTL命令或者 PTTL命令查看键的剩余生存时间,即键还有多久才会因为过期而被移除。 &nbs原创 2021-08-19 14:05:38 · 4458 阅读 · 0 评论 -
Redis 自动过期 使用 EXPIREAT、PEXPIREAT:设置过期时间 自动过期特性的不足之处
这里写目录标题12.3 EXPIREAT、PEXPIREAT:设置过期时间12.3.1 EXPIREAT使用示例12.3.2 PEXPIREAT使用示例12.3.3 更新键的过期时间12.3.4 自动过期特性的不足之处12.3.5 其他信息参考目录12.3 EXPIREAT、PEXPIREAT:设置过期时间 Redis用户不仅可以通过设置生存时间来让键在指定的秒数或毫秒数之后自动被移除,原创 2021-08-19 13:49:45 · 3545 阅读 · 0 评论 -
Redis 自动过期 使用 SET命令的EX选项和PX选项
这里写目录标题12.2 SET命令的EX选项和PX选项12.2.1 组合命令的安全问题12.2.2 其他信息参考目录12.2 SET命令的EX选项和PX选项 在使用键过期功能时,组合使用SET命令和EXPIRE/PEXIRE命令的做法 非常常见,比如上面展示的带有自动移除特性的缓存程序就是这样做 的。 因为SET命令原创 2021-08-19 12:31:47 · 5138 阅读 · 0 评论 -
Redis 自动过期 使用 EXPIRE、PEXPIRE:设置生存时间
这里写目录标题12.1 EXPIRE、PEXPIRE:设置生存时间12.1.1 更新键的生存时间12.1.2 其他信息参考目录12.1 EXPIRE、PEXPIRE:设置生存时间 用户可以通过执行EXPIRE命令或者PEXPIRE命令为键设置一个生存时 间(Time To Live,TTL):键的生存时间在设置之后就会随着时间的 流逝而不断地减少,当一个键的生存时间被消耗殆尽时,Redis就会移 除这个键。&原创 2021-08-19 12:15:47 · 6664 阅读 · 0 评论 -
Redis 中的数据 自动过期 功能
第12章 自动过期 在构建应用时,我们常常会碰到一些在特定时间之后就不再有用的数 据,比如: ·随着内容的不断更新,一个网页的缓存可能在5min之后就没有阅读价 值了,为了让用户能够及时地获取到最新的信息,程序必须定期移除旧 缓存并设置新缓存。 ·为了保障用户的信息安全,应用通常会在用户登录一周原创 2021-08-19 12:01:05 · 599 阅读 · 0 评论