Redis
文章平均质量分 95
逐渐呆滞
黑奴
展开
-
Redis网络模型
当我们的客户端想要去连接我们服务器,会去先到IO多路复用模型去进行排队,会有一个连接应答处理器,他会去接受读请求,然后又把读请求注册到具体模型中去,此时这些建立起来的连接,如果是客户端请求处理器去进行执行命令时,他会去把数据读取出来,然后把数据放入到client中, clinet去解析当前的命令转化为redis认识的命令,接下来就开始处理这些命令,从redis中的command中找到这些命令,然后就真正的去操作对应的数据了,当数据操作完成后,会去找到命令回复处理器,再由他将数据写出。我们来梳理一下这张图。原创 2023-06-11 08:32:55 · 826 阅读 · 2 评论 -
Redis通信协议、过期回收策略
try {// 1.建立连接 String host = "服务器IP";// 2.获取输出流、输入流 writer = new PrintWriter(new OutputStreamWriter(s . getOutputStream() , StandardCharsets . UTF_8));// 3.发出请求 // 3.1.获取授权 auth 123321 sendRequest("用户名" , "密码");原创 2023-06-03 20:45:11 · 2562 阅读 · 2 评论 -
Redis五大基本数据结构(原理)
对⼀个内部表示成long型的string执行append, setbit, getrange这些命令,针对的仍然是string的值(即⼗进制表示的字符串),而不是针对内部表⽰的long型进⾏操作。因此,在这些命令的实现中,会把long型先转成字符串再进行相应的操作。String的内部存储结构⼀般是sds(Simple Dynamic String,可以动态扩展内存),但是如果⼀个String类型的value的值是数字,那么Redis内部会把它转成long类型来存储,从⽽减少内存的使用。原创 2023-05-28 09:01:00 · 1709 阅读 · 0 评论 -
Redis数据结构——动态字符串、Dict、ZipList
我们都知道Redis中保存的Key是字符串,value往往是字符串或者字符串的集合。可见字符串是Redis中最常用的一种数据结构。不过Redis没有直接使用C语言中的字符串,因为C语言字符串存在很多问题: 获取字符串长度的需要通过运算 非二进制安全 不可修改 Redis构建了一种新的字符串结构,称为简单动态字符串(Simple Dynamic String),简称SDS。 例如,我们执行命令:那么Redis将在底层创建两个SDS,其中一个是包含“name”的SDS,另一个是包含“虎哥”的SDS。Redis是原创 2023-05-12 19:55:09 · 767 阅读 · 1 评论