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

4月 10, 2021 0条评论 2点热度 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条评论 3点热度 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条评论 3点热度 0人点赞 奔跑的蜗牛 阅读全文

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

4月 8, 2021 0条评论 8点热度 1人点赞 奔跑的蜗牛 阅读全文

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

4月 7, 2021 0条评论 16点热度 0人点赞 奔跑的蜗牛 阅读全文

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

4月 6, 2021 0条评论 23点热度 0人点赞 奔跑的蜗牛 阅读全文

在Redis中, 用户可以通过执行SLAVEOF命令或者设置slaveof选项, 让一个服务器去复制另一个服务器 被赋值的服务器叫做主服务器 对主服务器进行赋值的服务器则被称为从服务器 进行负值中的主从服务器双方的数据库将保存相同的数据, 概念上将这种现象称作"数据库状态一致", 或者简称"一致" 旧版复制功能的实现 旧版功能主要是指Redis 2.8以前版本, 在复制的时候会出现一些低效的情况 Redis的复制功能分为同步(sync)和命令传播(command propagate)两个操作: 同步操作用于将从服务…

4月 5, 2021 0条评论 21点热度 0人点赞 奔跑的蜗牛 阅读全文

redis数据库组成 redis在启动时会启动16个数据库实例 redis客户端链接时, 默认链接的是0数据库 可以通过select index的方式切换数据库 数据存储方式 redis是键值对方式存储数据, 键是字符串对象; 值时具体对象,包括字符串对象, 列表对象, 集合对象, 哈希对象, 有序集合对象 redis在每个数据库中存储数据是采用的是dict(字典)数据结构进行存储 key : 字符串对象redisObject value: 存储的是redisObject对象 读写键控件时的维护操作 在读取一个键(…

4月 4, 2021 0条评论 34点热度 0人点赞 奔跑的蜗牛 阅读全文

Redis服务器是一个事件驱动程序, 服务器需要处理以下两类事件: 文件事件: Redis服务器通过套接字与客户端进行连接, 而文件事件就是服务器对套接字操作的抽象.服务器和客户端的通信会产生响应的文件事件, 而服务器通过监听并处理这些事件来完成一系列网络通信操作。 时间事件: redis服务器中的一些操作需要在给定的时间点执行, 而时间事件就是服务器对这类定时操作的抽象。 文件事件 Redis基于Reactor模式开发了自己的网络事件处理器, 这个处理器被称为文件事件处理器. 文件实践处理器使用I/0多路复用程序…

4月 3, 2021 0条评论 32点热度 0人点赞 奔跑的蜗牛 阅读全文

通过使用由I/O多路复用技术实现的文件事件处理器, Redis服务器使用单线程单进程的方式来处理命令请求, 并与多个客户端进行网络通信。 对于每个与服务器进行连接的客户端, 服务器都为这些客户端建立了响应的redisClient结构. 这个结构保存了客户端当前的状态信息, 以及执行相关功能时需要用到的数据结构 客户端的套接字描述符 客户端的名字 客户端的标志值(flag) 指向客户端正在使用的数据库的指针, 以及该数据库的号码 客户端当前要执行的命令, 命令的参数, 命令参数的个数, 以及指向该命令实现函数的指针 …

4月 3, 2021 0条评论 46点热度 1人点赞 奔跑的蜗牛 阅读全文