服务器
命令请求的执行过程
使用SET KEY VALUE命令为例, 客户端和服务器共需要执行以下操作:
客户端向服务器发送命令请求SET KEY VALUE
服务器接收并处理客户端发来的命令请求SET KEY VALUE, 在数据库中进行设置操作, 并产生命令回复OK
服务器将命令回复OK发送给客户端
客户端接收服务器返回的命令回复OK, ……继续阅读 »
1年前 (2021-03-29) 322浏览 0评论
1个赞
对象编码
哈希对象的编码可以是ziplist或者hashtable
ziplist
ziplist编码的哈希对象使用压缩列表作为实现, 每当有新的键值对要加入到哈希对象时, 程序会先将保存了键的压缩列表节点推入到压缩列表表尾, 然后再将保存了值的压缩列表节点推入到压缩列表表尾.
优点
保存了同一键值对的两个节点总是紧挨在一起, 保存键的节点在前, 保存值……继续阅读 »
1年前 (2021-03-29) 313浏览 0评论
1个赞
集合对象的编码可以是intset或者hashtable.
intset编码的集合
intset编码集合对象使用整数集合作为底层实现, 集合对象包含的所有元素都被保存在整数集合里面.
hashtable
hashtable编码的集合对象使用字典作为底层实现, 字典的每个键都是一个字符串对象, 每个字符串对象包含了一个集合元素。而字典的值全部被设置为NULL
编……继续阅读 »
1年前 (2021-03-29) 347浏览 0评论
1个赞
列表对象编码
列表对象可以是ziplist或者linkedlist两种。
编码转换条件
列表对象保存的所有字符串元素的长度都小于64字节
列表对象保存的元素数量小于512个
不能满足这两个条件的列表对象需要使用linkedlist编码
编码转换条件修改
list-max-ziplist-value: 用于修改能够保存的最大的字节数
lis……继续阅读 »
1年前 (2021-03-29) 299浏览 0评论
1个赞
有序集合对象
编码
有序集合的编码可以是ziplist或者skiplist
ziplist
ziplist编码的压缩列表对象使用压缩列表作为底层实现, 每个集合元素使用两个紧挨在一起的压缩列表节点来保存, 第一个节点保存元素的成员(member), 第二个元素保存元素的分值(score)
压缩列表内的集合元素按分值从小到大进行排序, 分值较小的元素被放置在靠……继续阅读 »
1年前 (2021-03-28) 292浏览 0评论
2个赞
redis字符串对象
……继续阅读 »
1年前 (2021-03-28) 319浏览 0评论
1个赞
RDB持久化
Redis数据状态: 保存在Redis数据库中的数据被称作数据状态。
RDB文件的创建与载入
有两个Redis命令可以用于生成RDB文件, 一个是SAVE, 另一个是BGSAVE
RDB文件创建
SAVE命令会阻塞Redis服务器进程, 知道RDB文件创建完毕为止, 在服务器进程阻塞期间, 服务……继续阅读 »
1年前 (2021-03-23) 340浏览 0评论
1个赞
-Xms
代表着最小堆, 在jvm启动时就会分配到该大小的区域
-Xmx
代表最大堆, 在jvm最小堆不能满足需求时, 对jvm内存进行扩展, 直到最大堆的内存大小
-Xmn
代表新生代区域的大小
-XX:SurvivorRatio
代表着……继续阅读 »
1年前 (2021-03-20) 373浏览 0评论
2个赞
jvm的常用命令
jps
jps相关参数
实例
jstack
分析CPU使用100%的原因
jmap
jinfo
jstat
javap
jps
显示当前java的进程以及相关参数
jps相关参数
-q 只显示pid, 不显示clas……继续阅读 »
1年前 (2021-03-20) 639浏览 1评论
1个赞
与RDB持久化通过保存数据库中的键值对来记录数据库状态不同, AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的。
AOF持久化的实现
AOF持久化功能的实现可以分为命令追加(append),文件写入,文件同步(sync)三个步骤
命令追加
当AOF持久化功能处于打开状态时, 服……继续阅读 »
1年前 (2021-03-20) 604浏览 1评论
5个赞