摘要:
简介 redis可以配置最大使用内存,当使用内存超过配置的最大值的时候,需要主动进行内存回收。内存回收的两种基本策略: lru: 淘汰最长时间没被访问的对象,这种策略需要维护对象被访问时间的信息。 lfu: 淘汰被访问次数最少的对象,这种策略需要维护对象被访问的频率信息。 redis内存淘汰基本策略 阅读全文
posted @ 2024-09-27 17:00
董少奇
阅读(40)
评论(0)
推荐(0)
摘要:
简介 redis的事件分为两种: 定时事件(如定时任务),定时任务事件是通过将定时任务插入到一个任务链表中,定时遍历链表检查是否有到时间的任务需要处理。 文件句柄事件(如网络socket可读或可写),文件句柄事件的监听和处理是通过epoll系统调用实现的。 事件对象 基础结构 typedef str 阅读全文
posted @ 2024-09-27 16:59
董少奇
阅读(29)
评论(0)
推荐(0)
摘要:
简介 redis可以设置key的ttl(time to live, 存活时长),当时间超过ttl了,就会删除key。通过源码阅读了解下面两个问题: redis如何保存ttl信息 redis什么时候触发删除过期key的操作 源码 ttl的保存 在set key的时候设置或者更新ttl #t_strin 阅读全文
posted @ 2024-09-27 16:57
董少奇
阅读(83)
评论(0)
推荐(0)
摘要:
简介 redis的设计是事件驱动模型,对于客户端连接的处理主要是对两个事件的处理: 服务端的监听端口注册了可读事件处理函数acceptTcpHandler,用于处理客户端请求建立tcp连接;该函数会接收客户端请求并生成一个网络连接句柄,然后封装成一个client对象。 在服务端接收客户端请求命令后, 阅读全文
posted @ 2024-09-27 16:52
董少奇
阅读(55)
评论(0)
推荐(0)
摘要:
简介 这里介绍了redis的set命令执行流程,大致了解redis的设计。 源码 调用堆栈 # 函数名 文件 # set命令的入口函数,参数key,val就是对应的kv setGenericCommand t_string.c # 向hash表中插入kv genericSetKey db.c # 在 阅读全文
posted @ 2024-09-27 16:51
董少奇
阅读(62)
评论(0)
推荐(0)

浙公网安备 33010602011771号