Redis总结
发表于|更新于|后端
|浏览量:
文章作者: 褚成志
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 褚成志的分享站!
相关推荐
2026-04-09
Redis知识点汇总
Redis快速回忆核心数据结构 字符串小于1M,成倍扩容,大于1M,就每次扩容1M,最大512M。 哈希 购物车 列表 集合 有序集合 位图 Bitmap虽然基于String类型,但是可以直接操作位 一个字节8位表示一个用户是数据 使用的时候把握住偏移量即可 集成springboot 一般都会自定义,JDK的序列化方式存的数据不能直接查看 核心原理持久化机制持久化命令bgsave 是异步的 save 是同步的 RDB AOF 混合模式 快照的时候,增量的数据使用AOF的方式 分布式锁演进过程本地锁和分布式锁减库存的时候多线程 无法释放锁的情况处理出现异常的话,就无法释放锁 服务器断了,下面的锁还是无法释放 设置超时时间,但是不能不是原子性操作 合并为原子性操作,但是自己的锁可能被别人释放,因为别人的锁可能过期没了 自己的锁被别人删除怎么办解决办法一:值相同的时候才可以删除掉 解决办法二:给锁续命,防止线程还在执行的时候锁就失效 redission 看门狗机制 **看门狗作用:**每隔十...
2026-04-09
pipeline解决Redis频繁命令往返导致的性能瓶颈
客户端和服务端交互模型 Redis 的 pipeline 交互模型 Redis pipeline 与原生批量mset等等命令对比 原生批量命令是原子性,pipeline 是非原子性的 原生批量命令一次只能执行一种命令,pipeline 支持批量执行不同命令 原生批命令是服务端实现,而 pipeline 需要服务端与客户端共同完成 需要注意: Redlis 事务是具有隔离性的,在执行过程中不会穿插执行其他客户瑞发送的命令 使用 pipeline 组装的命令个数不能太多,不然数据量过大 pipeline 会按照指令缓冲的顺序执行,但是可能会穿插其他客户端发送来的命令,即时序性不一定能够保证 pipeline 执行中间某一个指令出现异常,将会继续执行后续的指令,即不能保证原子性
2026-04-09
网络知识总结
processon processon 基于网络层,结合 Linux 系统的网络协议栈和网络收发流程。分析和定位网络瓶颈。定位出网络性能瓶颈后,根据瓶颈所在的协议层,进行优化。从应用程序、套接字、传输层、网络层再到链路层等,对每个层次进行逐层优化。 无法使用协议优化的时候,可以考虑,使用 DPDK 等用户态方式,绕过内核协议栈;或者,使用 XDP,在网络包进入内核协议栈前进行处理。 性能指标和工具 各层性能优化获得网络基准测试报告,然后通过相关性能工具,定位出网络性能瓶颈。再 接下来的优化工作 应用程序–主要对网络 I/O 和进程自身工作模型的优化。 网络 I/O 的角度 I/O 多路复用技术 epoll,主要用来取代 select 和 poll。是解决 C10K 问题的关键 使用异步 I/O(Asynchronous I/O,AIO)。AIO 允许应用程序同时发起很多 I/O 操作,而不用等待这些操作完成。等到 I/O 完成后,系统会用事件通知的方式,告诉应 用程序结果。不过,AIO 的使用比较复杂...
2026-04-09
Redis核心数据类型的底层编码(C源码)(重要)
Redis K-V 底层设计原理:字典hashtablekey:string val:string、hash、list、set、sorted set map 就是字典,还要支持海量数据的存储,查找和插入删除(hashtable) hashtable 里面 hash(key) % hashtable.size ,最后的得到的就是[0, hashtable.size - 1] hash碰撞的时候,线性探测或者链表法。Redis 使用的是链表法 注意这个hashtable里面的value的类型是五种常见类型谁都可以放,因为最后都是使用指针指向的,value的包装类里面会执行是什么数据类型。 redisDb–dict–dictht–dictEntry–redisObject Redis 渐进式rehash及动态扩容机制如图所示, 扩容时机:在使用的容量是大小的一样的时候就会扩容, 扩容大小:扩容的时候变为原来的2倍, 渐进式迁移:新建数组之后,数据迁移的时候,一个链表上的数据是一个桶为单位转移的,不能一下全部转移会导致单线程阻塞,所以有了渐进式rehash的设计,dict字典包...
2026-04-09
Redis持久化
对比 AOF 文件的内容是操作命令; RDB 文件的内容是二进制数据。 RDB 快照就是记录某一个瞬间的内存实际数据,而 AOF 文件记录的是命令操作的日志 RDB 恢复数据的效率会比 AOF 高些,因为直接将 RDB 文件读入内存就可以,不需要像 AOF 那样还需要额外执行操作命令的步骤才能恢复数据。 RDB 丢失的数据会更多,因为保存是全量快照,所以频率不能太高否则性能不好,所以会丢失更多数据 AOF 怎么用12345678910111213141516171819// redis.confappendonly yesappendfilename "appendonly.aof"# 同步方式appendfsync everysec# aof重写期间是否同步no-appendfsync-on-rewrite no# 重写触发配置auto-aof-rewrite-percentage 100auto-aof-rewrite-min-size 64mb# 加载aof时如果有错如何处理aof-load-truncated yes # yes表示如果aof尾部文件...
2026-04-09
必先利其器,常用工具分享
Chrome 插件效率Workspaces网页有用但是要关闭浏览器了,想下次打开恢复现场,这个插件很合适。 借助工作空间的概念,可以不同窗口放置不同类型的内容。 GitHub加速 Octotree - GitHub code treegithub 目录 JSON-handlejson 格式化工具 Markdown Nice在线微信公众号 Markdown 排版工具 OneTab助长拖延症,不推荐使用,使用 Workspaces 就够了。 沙拉查词-聚合词典划词翻译 稀土掘金启动页 百度搜索 快捷打开 baidu.com 浏览器增强AdBlock — 最佳广告拦截工具Better History历史记录管理,比自带的更好用 暂停标签 (Tab Suspender)打开很多页面的时候电脑占用内存紧张 这个插件会将固定时间内没有浏览的网页暂停,避免消耗太多内存。 Clear Cache快捷清除浏览器缓存 EditThisCookie编辑cookie 图片助手(ImageAssistant) 批量图片下载 Neater Bookmarks方便的书签管理 Tampermonkey...
公告
👋 你好,我是褚成志,一名专注于云原生与后端架构的工程师。
热爱 Java、Kubernetes、Linux、Redis、Spring 等技术领域,持续探索 AGI 与智能化运维的边界。
这里记录我的技术思考与实践总结,欢迎交流!
热爱 Java、Kubernetes、Linux、Redis、Spring 等技术领域,持续探索 AGI 与智能化运维的边界。
这里记录我的技术思考与实践总结,欢迎交流!