
Redis
文章平均质量分 65
redis缓存技术的应用和底层原理
学习时长两年半的小学生
我要一步一步往上爬~
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Redis Cluster集群底层原理的面试题(持续补充ing)
怎么配置集群怎么用这里不会说的,在另外一篇博客会手把手教 (1)环境下多节点的读写操作 第一种,最简单的轮询,写入是最直观方便的,假设集群三个节点,那就1,2,3;1,2,3……循环地写,但是查找的时候,就困难了,必须一个个节点去翻,这显然不符合。还有随机写入模式就更不用说了,也是一样的问题。 第二种,简单hash,也就是把对应的key对节点数量取模,找到对应的节点,既能解决写入的分配问题,也能解决读取问题,性能更优。但是当集群新增或减少节点的时候,所有缓存数据都要重新进行分配,不然同一个key,扩容/缩原创 2021-07-17 18:08:41 · 392 阅读 · 0 评论 -
Redis六种内存淘汰策略
翻译: Redis在满内存情况下会选择何种方式删除数据,你可以选择以下5种方式(其实是6种,redis备注写错了): noeviction(默认策略):就是当内存满了,再执行set之类的要申请内存的动作,直接报错。 allkeys-lru:所有key都使用LRU(最近最少使用)算法进行淘汰,优先移除最近很少使用的key,回收内存。 volatile-lru:所有设置了过期时间的key使用LRU算法进行淘汰。针对设置了过期时间的键值对,直接回收最近没使用的。 allkeys-random:随.原创 2021-05-12 16:19:36 · 532 阅读 · 0 评论 -
Redis内存碎片与优化
(1)什么是内存碎片? 假如连续内存空间不足以分配给客户端申请的内存,就会导致内存分配失败,OOM或者其它错误。更简单的说,就是零散的内存碎片太多,没有真正可用的连续内存 例如:100M内存,客户端每次申请30M,连续申请三次后还剩下10M,这10M就称为不可用的内存碎片,当然这只是例子,实际不可能有10M这么大的碎片,一般都是很多以KB , B计算的碎片,加总和起来是非常大量的碎片。 (2)为什么会产生内存碎片? Redis的增删改都会产生内存碎片 增:我们要针对key A set一个17字节的valu原创 2021-05-11 14:29:26 · 620 阅读 · 0 评论 -
Redis模糊匹配的两种方式比较:Keys 和 Match
大家都用redis放数据,也都知道使用“:”号分隔不同维度的数据,那么业务场景需要区分每个维度的统计的时候,或者要根据某个key的前缀匹配去统计有多少个类似的key的时候,就要使用模糊匹配了。 先看看下面两种匹配方式: Keys: Match: @RequestMapping("/match") public void match(){ List<String> keyResultList = new ArrayList<>(); System.out.printl原创 2020-11-26 10:59:20 · 4369 阅读 · 0 评论 -
Redis开启AOF和RDB两种持久化(数据恢复小demo)
AOF和RDB的区别网上一大把,可以去背书一样背,理论太多,直接实操 首先有几点: (1)Redis开启持久化非常简单,只要改个配置,踩点坑就行。 (2)配置文件中如果开启了持久化,那就不需要我们操心,它服务重启会自动恢复数据,跟我们的springboot, Java,node,半毛钱关系没有。 (3)MacBook,Linux,Windows虽然改配置文件是一样的,但是有些坑是不一样的。 (4)一定要注意自己的版本!一定要注意自己的 redis 的版本!一定要注意自己本地的redis的版本!! (1)查看原创 2020-11-17 18:06:36 · 1260 阅读 · 0 评论 -
Springboot + Redis发布订阅模式实现简陋版聊天室
安装redis就不写了,直接开启redis服务。 (1)去到我自己Mac 电脑的安装目录下 cd /usr/local/bin (2)开启:redis-server 成功了。 SpringBoot中pom.xml文件添加redis的依赖包: <dependency> <groupId>org.springframework.boot</groupId&...原创 2020-03-05 18:17:22 · 1214 阅读 · 0 评论