mysql 事务 mysql事务的四个特性 原子性(Atomicity) 原子性是指整个数据库事务是不可分割的工作单位。只有使事务中的所有数据库操作都成功,整个事务才算成功。如果事务中任何一个SQL执行失败,已执行的SQL的操作必须被撤销, 数据库状态应该回退到执行事务前的状态。 一致性(Consistency) 一致性是指事务将数据库从一个状态转换为下一个一致性的状态。在事务开始前和开始后, 数据的完整性约束没有被破坏。 隔离性(Isolation) 一个事务的影响在提交前对其他事务都是不可见的。 - 这种通过锁…

11 4 月, 2021 0条评论 147点热度 0人点赞 专注着 阅读全文

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

11 4 月, 2021 0条评论 196点热度 0人点赞 专注着 阅读全文

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

10 4 月, 2021 0条评论 175点热度 0人点赞 专注着 阅读全文

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

9 4 月, 2021 0条评论 184点热度 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   接下来使…

9 4 月, 2021 0条评论 201点热度 1人点赞 专注着 阅读全文

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

8 4 月, 2021 0条评论 183点热度 0人点赞 专注着 阅读全文

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

7 4 月, 2021 0条评论 175点热度 0人点赞 专注着 阅读全文

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

6 4 月, 2021 0条评论 168点热度 0人点赞 专注着 阅读全文

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

5 4 月, 2021 0条评论 231点热度 0人点赞 专注着 阅读全文

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

4 4 月, 2021 0条评论 223点热度 0人点赞 专注着 阅读全文