Redis提供了SETBIT,GETBIT,BITCOUNT,BITOP四个命令用于处理二进制位数组. 其中, SETBIT命令用于为位数组指定偏移量上的二进制设置值, 位数组的偏移量从0开始计数, 而二进制位的值则可以是0或者1。 GETBIT命令则用于获取位数组指定偏移量上的二进制位的值. BIGCOUNT命令用于统计维数组里面, 值为1的二进制位的数量. BITOP命令既可以对多个位数组进行按位与(and),按位或(or),按位异或(xor),取反操作(not)运算 位数组的表示 Redis使用字符串对象来表…

4月 14, 2021 0条评论 417点热度 0人点赞 阅读全文

发布与订阅 Redis的发布与订阅命令由PUBLISH,SUBSCRIBE,PSUBSCRIBE等命令组成。 通过执行SUBSCRIBE命令, 客户端可以订阅一个或多个频道, 从而成为这些频道的订阅者: 每当有其他客户端向被订阅的频道发送消息时, 频道的所有订阅者都会收到这条消息。 除了订阅频道之外, 客户端还可以通过执行PSUBSCRIBE命令订阅一个或多个模式, 从而成为这些模式的订阅者: 每当有其他客户端向某个频道发送消息时, 消息不仅会被发送给这个频道的所有订阅者, 它还会被发送给所有与这个频道相匹配的模式…

4月 13, 2021 0条评论 405点热度 0人点赞 阅读全文

Redis慢查询日志功能用于记录执行时间超过给定时长的命令请求, 用户可以通过这个功能产生的日志来监视和优化查询速度。 相关配置参数 slowlog-log-slower-than选项指定执行时间超过多少微秒(1秒等于1000000微秒)的请求会被记录到日志上面 slowlog-max-len选项指定服务器最多保存多少条慢查询日志 保存日志方式 服务器使用先进先出的方式保存多条慢查询日志, 当服务器存储的慢查询日志数量等于slowlog-max-len选项的值时, 服务器在添加一条新的慢查询日志之前, 会先将最旧的…

4月 12, 2021 0条评论 457点热度 0人点赞 阅读全文

主从库间数据第一次同步 当我们启动多个Redis实例时, 实例之间可以通过replicaof(5.0版本之前采用slaveof)命令形成主库和从库的关系。 主从复制拓扑图如下: 数据同步步骤 psync命令: 该命令由从节点向主节点发送建立连接的请求, 主库会根据从库的参数启动复制. 该命令包含了两个参数: 主库的runId: runId表示了每个实例启动时随机生成的随机ID, 用来标识redis实例。当从库和主库第一次复制数据时, 因为不知道主库的runID, 因此将 runId设置为"?" 复制进度offset…

4月 11, 2021 0条评论 465点热度 0人点赞 阅读全文

慢日志查询 Redis慢查询日志功能用于记录执行时间超过给定时长的命令请求, 用户可以通过这个功能产生的日志来监视和优化查询速度。 相关配置参数 slowlog-log-slower-than选项指定执行时间超过多少微秒(1秒等于1000000微秒)的请求会被记录到日志上面 slowlog-max-len选项指定服务器最多保存多少条慢查询日志 保存日志方式 服务器使用先进先出的方式保存多条慢查询日志, 当服务器存储的慢查询日志数量等于slowlog-max-len选项的值时, 服务器在添加一条新的慢查询日志之前, …

4月 10, 2021 0条评论 357点热度 0人点赞 阅读全文

Redis从2.6版本开始引入对Lua脚本的支持, 通过在服务器中迁入Lua环境, Redis客户端可以使用Lua脚本, 直接在服务器端原子地执行多个Redis命令。 创建并修改Lua环境 为了在Redis服务器中执行Lua脚本, Redis在服务器内嵌了一个Lua环境, 并对这个Lua环境进行了一些列修改, 从而确保这个Lua环境可以满足Redis服务器的需要. Redis服务器创建并修改Lua环境的整个过程由一下步骤组成: 创建一个基础的Lua环境, 之后的所有修改都是针对这个环境进行的。 载入多个函数库到Lu…

4月 9, 2021 0条评论 428点热度 0人点赞 阅读全文

排序 Redis的sort命令可以对列表键, 集合键或者有序结合的键进行排序. 以下代码展示了SORT命令对列表键进行排序的例子: redis> RPUSH numbers 5 3 1 4 2 redis> LRANGE numbers 0 -1 redis> SORT numbers redis> SADD alphabet a b c d e f g redis> SMEMBERS alphabet redis> SORT alphabet ALPHA   接下来使…

4月 9, 2021 0条评论 404点热度 0人点赞 阅读全文

事务 Redis通过MULTI,EXEC,WATCH等命令来实现事务功能. 事务提供了一种将多个命令请求打包, 然后一次性,按顺序地执行多个命令的机制. 并且在事务执行期间, 服务器不会中断事务而改去执行其他客户端的命令请求, 它会将事务中的所有命令都执行完毕, 然后才去处理其他客户端的请求命令. 事务的实现 一个事务从开始到结束通常会经历一下三个阶段: 事务开始 命令入队 事务执行 事务开始 MULTI 命令的执行标志着事务的开始: redis> MULTI   MULTI命令可以将执行该命令的客…

4月 8, 2021 0条评论 360点热度 1人点赞 阅读全文

哨兵模式 负责监控主从中所有的redis服务器的状态 当主redis发生了系统宕机之后, 并从当前主redis的从服务器中选出一个master用于主服务器. 并将其他从服务器连接到新的master之上 负责监听已经宕机的master服务器, 并监听master上线情况, 当master上线之后, 重新将master设置为新主服务器的从服务器。 启动并初始化Sentinel 启动一个Sentinel可以使用命令: redis-sentinel /path/to/your/sentinel.conf ​ 或者使用: r…

4月 7, 2021 0条评论 439点热度 0人点赞 阅读全文

Redis集群是Redis提供的分布式数据库方案, 集群通过分片(sharding)来进行数据共享, 并提供复制和故障转移功能。 节点 一个集群通常由多个节点组成, 在刚开始的时候, 每个节点都是相互独立的, 他们都处于一个只包含自己的集群当中, 要组建一个真正可工作的集群, 我们必须各个独立的节点链接起来, 构成一个包含多个节点的集群。 链接各个节点的工作可以使用CLUSTER MEET命令来完成, 该命令格式如下: CLUSTER MEET <ip> <port> 向一个节点node发送…

4月 6, 2021 0条评论 448点热度 0人点赞 阅读全文