RDB持久化 Redis数据状态: 保存在Redis数据库中的数据被称作数据状态。   RDB文件的创建与载入 有两个Redis命令可以用于生成RDB文件, 一个是SAVE, 另一个是BGSAVE   RDB文件创建 SAVE命令会阻塞Redis服务器进程, 知道RDB文件创建完毕为止, 在服务器进程阻塞期间, 服务器不能处理任何命令请求. BGSAVE派生出一个子进程, 然后由子进程创建RDB, 服务器进程继续处理命令请求.   RDB文件载入 RDB文件的载入工作时在服务器启动时自…

24 3 月, 2021 0条评论 166点热度 0人点赞 专注着 阅读全文

-Xms 代表着最小堆, 在jvm启动时就会分配到该大小的区域 -Xmx 代表最大堆, 在jvm最小堆不能满足需求时, 对jvm内存进行扩展, 直到最大堆的内存大小 -Xmn 代表新生代区域的大小 -XX:SurvivorRatio 代表着Eden区域与Survivor区域的比例. 一般Survivor的区域有两个。例如:-XX:SurvivorRatio = 3;则Survivor的大小 = 1/5 * 新生代大小 -XX:NewSize 设置新生代大小 -XX:NewRatio 设置新生代与老年代比值。例如:-…

21 3 月, 2021 0条评论 139点热度 0人点赞 专注着 阅读全文

jvm的常用命令 jps jps相关参数 实例 jstack 分析CPU使用100%的原因 jmap jinfo jstat javap jps 显示当前java的进程以及相关参数 jps相关参数 -q 只显示pid, 不显示class名称, jar名称以及main方法的参数 -m 输出传递给main的参数 -l 输出应用程序main, class的完整package名称或者应用程序jar包的完成路径名 -v 输出传递给jvm的参数 备注: 也可以使用ps aux | grep 项目名称查看对应的pid信息 实例 …

21 3 月, 2021 1条评论 133点热度 0人点赞 专注着 阅读全文

与RDB持久化通过保存数据库中的键值对来记录数据库状态不同, AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。 AOF持久化的实现 AOF持久化功能的实现可以分为命令追加(append),文件写入,文件同步(sync)三个步骤 命令追加 当AOF持久化功能处于打开状态时, 服务器在执行完一个写命令之后,会以协议格式将被执行的写命令追加到服务器状态的aof_buf缓冲区的末尾:  struct redisServer {   // AOF缓冲区   sds aof_buf; } AOF文件的写…

21 3 月, 2021 1条评论 160点热度 0人点赞 专注着 阅读全文

什么是redis持久化 持久化就是把内存的数据写到磁盘中去, 防止服务宕机了内存数据丢失 redis 数据持久化方式 RDB rdb是Redis DataBase缩写 功能核心函数rdbSave和rdbLoad两个函数 rdbSave是将对象保存到RDB文件中 rdbLoad是将RDB文件中的数据加载到内存之中 AOF Aof 是Append-only file缩写 每当执行服务器任务或函数时, flushAppendOnlyFile函数会被调用, 这个函数执行以下两个工作 WRITE: 根据条件, 将aof_bu…

21 3 月, 2021 0条评论 173点热度 0人点赞 专注着 阅读全文

主从复制 主从复制原理 从服务器链接主服务器, 发送SYNC命令 主服务器收到SYNC命令后, 开始执行BGSAVE名称RDB文件并使用缓冲区记录伺候执行的所有写命令; 主从服务器BGSAVE执行完成后, 向所有从服务器发送快照文件, 并在发送期间继续记录被执行的写命令(异步同步数据); 从服务器收到快照文件后丢弃所有旧数据, 载入收到的快照 注服务器快照发送完毕后开始想从服务器发送缓冲区中的写命令 从服务器完成对快照的载入, 开始接受命令请求, 并执行来自主服务器缓冲区的写命令(从服务器初始化完成) 主服务器每执…

21 3 月, 2021 0条评论 133点热度 0人点赞 专注着 阅读全文

Strings Hashs: Lists: Sets: SortedSet Strings 是redis中最基本的数据类型, 虽然名称为Strings, 实际上也是一个map的结构, 提供了最基本的set,get,incr,descry的一些简便的操作 Lists 在Redis Lists中, 对应的采用的是链表的形式(LinkedList)的实现, 这就意味着, 即使List中包含了百万的元素, 在其头部或者尾部添加一个元素,基本上一个常数级别的。 在redis中采用链表的原因是, 能够在很大的列表上新增元素。 …

21 3 月, 2021 0条评论 160点热度 0人点赞 专注着 阅读全文

Redis 协议在以下三个目标之间进行折中: 易于实现 可以高效地被计算机分析(parse) 可以很容易地被人类读懂 网络层 客户端和服务器通过 TCP 连接来进行数据交互, 服务器默认的端口号为 6379 。 NOTE: 客户端和服务器发送的命令或数据一律以 \r\n (CRLF)结尾。 请求 Redis 服务器接受命令以及命令的参数。 服务器会在接到命令之后,对命令进行处理,并将命令的回复传送回客户端。 新版统一请求协议 新版统一请求协议在 Redis 1.2 版本中引入, 并最终在 Redis 2.0 版本成…

21 3 月, 2021 0条评论 209点热度 0人点赞 专注着 阅读全文