
Redis和缓存
文章平均质量分 97
redis和缓存系列博客
惑边
每一分努力都会在合适的时机得到回报...
展开
-
02-缓存引入的问题
文章目录缓存引入的问题一、数据一致性问题1.1 问题1.2 解决办法1.2.1 实时更新1.2.2 准实时更新1.2.3 缓存失效1.2.4 定时任务更新二、缓存穿透2.1 问题2.2 解决办法2.2.1 布隆过滤器2.2.2 缓存空值2.3 拓展三、缓存雪崩3.1 问题3.2 解决办法3.2.1 随机过期时间3.2.2 访问加锁四、缓存击穿4.1问题4.2 解决办法4.2.1 使用互斥锁(mu...原创 2019-05-29 23:05:50 · 175 阅读 · 0 评论 -
01-缓存基本概念
文章目录缓存一、基本概念二、应用场景三、缓存指标和缓存过期3.1 命中率3.2 缓存过期3.2.1 绝对过期3.2.2 滑动过期四、缓存访问的模板流程缓存一、基本概念缓存是将数据存储在读写性能更好的介质,让访问速度更快。缓存本质是真实数据的拷贝。二、应用场景数据特点是否适合缓存效果访问频率高的数据适合效果好访问频率低的数据不适合效果不好读写比...原创 2019-05-29 22:51:44 · 394 阅读 · 0 评论 -
Redis使用Lua脚本的两个小问题
文章目录Redis使用Lua脚本的两个小问题一、整型转换1.1 场景1.2 问题1.3 修复二、获取Set元素2.1 场景2.2 问题2.3 修复Redis使用Lua脚本的两个小问题最近在项目中使用redisTemplate 执行Lua 脚本发现两个比较坑的地方,发现之后其实也很简单,过程很容易让人抓狂,一、整型转换1.1 场景逻辑是通过一段 Lua 脚本去给redis中的一个值加...原创 2019-11-19 20:41:25 · 5471 阅读 · 3 评论 -
Redis面试题-value超过限制会怎样?
文章目录Redis的value超过限制会怎样?一、面试题二、验证三、结论Redis的value超过限制会怎样?一、面试题问:Redis的key和value限制是多少?答:512MB问:保存一个超过512MB的value会怎么样?答:额…,我没试过,应该会报错吧,你可以动手试试…二、验证代码public static void main(String[...原创 2019-09-20 11:45:55 · 3210 阅读 · 1 评论 -
13-Redis内存和数据淘汰策略
文章目录Redis内存和数据淘汰策略一、命令和配置1.1 命令1.2 配置1.3 修改配置二、内存分析2.1 参数分析2.2 内存占用分析三、内存优化3.1 redisObject对象3.2 缩短k-v3.3 共享对象池3.4 字符串优化3.5 编码优化3.6 减少键的数量四、参考Redis内存和数据淘汰策略下面是基于Redis 4.0.13版本,不同版本可以略有差异。一、命令和配置1...原创 2019-07-18 19:44:40 · 399 阅读 · 0 评论 -
12-Redis底层数据结构
文章目录Redis底层数据结构一、字典1.1 Hash表节点Entry1.2 Hash表dictht1.3 字典dict1.4 字典reHash1.5 小结二、跳跃表2.1 跳跃表节点zskiplistNode2.2 跳跃表zskiplist2.3 有序集合zset2.4 跳跃表操作2.5 小结三、参考Redis底层数据结构Redis底层数据结构是Redis基本数据类型和诸多功能实现的基础,...原创 2019-07-18 18:16:00 · 191 阅读 · 0 评论 -
08-Redis 应用-分布式锁
文章目录Redis实现分布式锁一、分布式锁实现对比二、基于Redis实现2.1 原理2.2 细节2.2.1 加锁2.2.2 解锁2.3 实现代码2.4 测试三、小结Redis实现分布式锁分布式锁应用场景1.多任务环境2.多任务对共享资源访问3.共享资源访问是互斥的(比如读就不是互斥的,写是互斥的)一、分布式锁实现对比分布式锁常用的方案如下:方案实现思路优点缺...原创 2019-06-15 23:28:24 · 294 阅读 · 0 评论 -
06-Redis 性能
文章目录Redis性能一、Redis慢查询1.1 记录慢查询1.2 阈值1.3 慢查询原理1.4 慢查询分析二、redis内存检测2.1 检测内存使用量2.2 redis-server详解三、并发测试3.1 redis-benchmark详解四、Pipeline4.1 Pipeline优点4.1 Pipeline使用建议4.2 Pipeline使用示例Redis性能一、Redis慢查询1.1...原创 2019-06-15 16:17:05 · 111 阅读 · 0 评论 -
05-Redis 原子性和Lua
文章目录一、原子性二、Lua2.1 Lua脚本示例2.2 redis-cli使用Lua脚本2.3 jedis使用Lua脚本三、参考一、原子性原子性是指不可打断的一个完整操作。redis中单个命令是原子的,但是如果期望多个命令组合成一个原子操作,就不行了,此时需要借助Lua脚本来实现原子性、Redis中的弱事务。redis的简单事务,将一组需要一起执行的命令放到multi和exec两...原创 2019-06-15 15:39:57 · 1362 阅读 · 0 评论 -
04-Redis 持久化-AOF
文章目录AOF持久化一、AOF实现1.1 命令追加1.2 文件写入与同步二、AOF载入与数据还原三、AOF重写3.1 实现3.2 后台重写(BGREWRITEAOF)四、AOF配置五、RDB和AOF对比六、小结七、参考AOF持久化AOF持久化通过保存redis的写命令来记录数据库的状态,文件内容完全按照resp协议格式保存,是可读的。在前面我们了解的RDB持久化方式是保存数据库中的键值对,...原创 2019-06-15 14:47:25 · 269 阅读 · 0 评论 -
03-Redis 持久化-RDB
文章目录RDB持久化一、RDB文件的创建与载入1.1 创建1.2 载入1.3 优先级1.4 BGSAVE二、save配置三、RDB文件结构3.1 RDB文件组成部分3.2 RDB的数据库键值对3.3 k-v对部分四、分析RDB文件4.1 查看方法4.2 查看RDB文件4.3 RDB工具4.4 恢复RDB五、小结六、参考RDB持久化RDB文件是一个压缩的二进制文件,redis数据库将自己的状态...原创 2019-06-15 12:05:10 · 400 阅读 · 0 评论 -
02-Redis 客户端
文章目录Redis客户端一、命令行二、Jedis1.1 示例2.2 关键参数三、JedisPool四、JedisCluster五、手写Jedis简单客户端六、参考Redis客户端一、命令行命令行是Redis自带的一个很方便的客户端,相关的操作在第一篇文章中有介绍。为了提高redis的效率,可以批量设值,mset k1 v1 k2 v2,在前面一篇文章中提到过了二、JedisJedi...原创 2019-06-15 09:58:42 · 495 阅读 · 0 评论 -
01-Redis 初识
文章目录一、Redis初入门及介绍1.1 基本介绍1.1.1 介绍1.1.2 特性1.1.3 使用场景1.1.4 版本信息1.2 简单安装1.2.1 下载源码1.2.2 解压1.2.3 编译1.2.4 检查1.2.5 配置1.2.6 启动1.3 启动、停止、连接1.3.1 启动1.3.2 停止1.3.3 连接1.4 REDIS的通信模型1.4.1 通信模式1.4.2 为什么快?1.4.3 弊端1....原创 2019-05-29 23:36:41 · 572 阅读 · 0 评论 -
Redis Resp协议
一、RedisRedis是一个开源(BSD许可),内存数据结构存储,用作数据库,缓存和消息代理。 它支持数据结构,如字符串,散列,列表,集合,带有范围查询的排序集,位图,超级日志,具有半径查询和流的地理空间索引。 Redis具有内置复制,Lua脚本,LRU驱逐,事务和不同级别的磁盘持久性,并通过Redis Sentinel提供高可用性并使用Redis Cluster自动分区。二、RESP协...原创 2019-01-31 20:43:51 · 983 阅读 · 0 评论 -
07-Redis 事件
文章目录Redis 事件一、文件事件1.1 文件事件处理器1.1.1 构成1.1.2 IO多路复用的实现1.2 事件类型二、时间事件2.1 时间事件类型2.2 时间事件数据结构2.3 实现2.3 时间事件serverCorn三、参考Redis 事件一、文件事件Redis是一个事件驱动程序,Redis中包含文件时间和时间时间,本文主要针对文件事件。Redis通过套接字与客户端或者其他Redi...原创 2019-09-21 23:13:38 · 122 阅读 · 0 评论 -
09-Redis 主从(复制)
文章目录Redis 主从(复制)一、作用二、部署2.1 安装包准备2.2 配置2.3 启动2.4 启动日志三、主从数据同步3.1 同步原理3.2 psync主从同步过程四、主从读写五、主从链六、参考Redis 主从(复制)一、作用slaveof host port命令来让一个服务器成为另一个服务器的从服务器。一个从服务器最多只能有一个主服务器,但是一个主服务器可以用多个从服务器,但是不支持...原创 2019-09-21 23:43:52 · 222 阅读 · 0 评论 -
14-Redis编码优化
文章目录Redis编码优化一、压缩列表ziplist1.1 ziplist数据结构1.2 ziplist结构示图1.3 ziplist连锁更新1.4 ziplist复杂度二、Redis对象和编码2.1 Redis对象数据结构2.2 编码类型2.3 转换触发机制三、其他3.1 Redis类型检查3.2 内存回收3.3 对象共享3.4 对象空转时长四、小结五、参考Redis编码优化一、压缩列表zi...原创 2019-09-21 01:19:30 · 336 阅读 · 0 评论