随笔分类 -  Redis

摘要:推荐方案 采用更新前后双删除缓存策略 public void write(String key,Object data){ redis.del(key); db.update(data); Thread.sleep(1000); redis.del(key); } 先淘汰缓存 再写数据库 休眠1秒, 阅读全文
posted @ 2022-01-10 14:41 Tracydzf 阅读(179) 评论(0) 推荐(0) 编辑
摘要:首先说一下Redis Sentinel是怎么工作的?重点描述一下故障转移的过程 1)每个Sentinel以每秒钟一次的频率向它所知的Master,Slave以及其他 Sentinel 实例发送一个 PING 命令。 2)如果一个实例(instance)距离最后一次有效回复 PING 命令的时间超过 阅读全文
posted @ 2021-12-08 17:31 Tracydzf 阅读(176) 评论(0) 推荐(1) 编辑
摘要:你刚才说主从复制,那你能具体聊聊主从复制的原理吗? 在redis主从架构中,master负责接收写请求,写操作成功后返回客户端OK。 然后后将数据异步的方式发送给多个slaver进行数据同步,不过从redis 2.8开始,slave node会周期性地确认自己每次复制的数据量。 当启动一个slave 阅读全文
posted @ 2021-12-03 17:19 Tracydzf 阅读(29) 评论(0) 推荐(0) 编辑
摘要:一、Hash算法引入--分布式缓存 有一个电商平台,需要使用Redis存储商品的图片资源,key为图片名称,value为图片所在服务器的路径。利用随机分配的规则进行分库。总量3000w,以每台服务器存500w的数量,部署12台缓存服务器,并且进行主从复制,架构图如下图: 1.Hash算法优化 目的是 阅读全文
posted @ 2021-12-03 15:37 Tracydzf 阅读(531) 评论(0) 推荐(0) 编辑
摘要:第一,看看你到底有没有全面的了解Redis有哪些功能,一般怎么来用,什么场景用什么数据类型,就怕你只会最简单的kv操作 第二,看看你在实际项目里都怎么玩儿过Redis,经验是否丰富 要是你回答的不好,没说出几种数据类型,也没说什么场景,你完了,面试官对你印象肯定不好,觉得你平时就是做个简单的set和 阅读全文
posted @ 2021-12-03 11:27 Tracydzf 阅读(44) 评论(0) 推荐(0) 编辑
摘要:背景 最近,有不少用户反映登录我们的APP后,进入首页展示用户数据时要很久很久才能展示出来。刚开始还没在意,以为是用户自己的网络慢导致的,后来有好几个用户都反映了此问题,这不得不引起我们的重视了。 后来经过我们排查日志发现一个现象,提出该问题的用户都是基础数据比较多的,因为我们是金融软件,所以当用户 阅读全文
posted @ 2021-12-02 11:18 Tracydzf 阅读(36) 评论(0) 推荐(0) 编辑
摘要:使用Redis难免会遇到Redis缓存穿透,缓存击穿,缓存雪崩,热点Key的问题。有些同学可能只是会用Redis来存取,基本都是用项目里封装的工具类来操作。但是作为开发,我们使用Redis时可能会遇到上述问题,可能你还不知道这几个名词是什么意思,那么现在就让我们一起来探讨下吧。 首先我们使用Redi 阅读全文
posted @ 2021-12-01 18:42 Tracydzf 阅读(90) 评论(0) 推荐(0) 编辑
摘要:随着互联网技术的不断发展,用户量的不断增加,越来越多的业务场景需要用到分布式系统。而在分布式系统中访问共享资源就需要一种互斥机制,来防止彼此之间的互相干扰,以保证一致性,这个时候就需要使用分布式锁。 分布式锁的特点 互斥性。在任意时刻,只有一个客户端能持有锁 锁超时。即使一个客户端持有锁的期间崩溃而 阅读全文
posted @ 2021-12-01 17:33 Tracydzf 阅读(819) 评论(0) 推荐(0) 编辑
摘要:滑动窗口算法 指定时间T内,只允许发生N次。我们可以将这个指定时间T,看成一个滑动时间窗口(定宽)。 我们采用Redis的zset基本数据类型的score来圈出这个滑动时间窗口。在实际操作zset的过程中,我们只需要保留在这个滑动时间窗口以内的数据,其他的数据不处理即可。 每个用户的行为采用一个zs 阅读全文
posted @ 2021-11-15 19:38 Tracydzf 阅读(3860) 评论(0) 推荐(0) 编辑
摘要:首先我们来看一个常见 的简单的限流策略。系统要限定用户的某个行为在指定的时间里只能允许发生 N 次,如何使用 Redis 的数据结构来实现这个限流的功能? # 指定用户 user_id 的某个行为 action_key 在特定的时间内 period 只允许发生一定的次数 max_count def 阅读全文
posted @ 2021-11-15 19:04 Tracydzf 阅读(162) 评论(0) 推荐(0) 编辑
摘要:布隆过滤器是什么? 布隆过滤器可以理解为一个不怎么精确的 set 结构,当你使用它的 contains 方法判断某个对象是否存在时,它可能会误判。 但是布隆过滤器也不是特别不精确,只要参数设置的合理,它的精确度可以控制的相对足够精确,只会有小小的误判概率。 当布隆过滤器说某个值存在时,这个值可能不存 阅读全文
posted @ 2021-11-15 18:10 Tracydzf 阅读(88) 评论(0) 推荐(0) 编辑
摘要:Redis 命令以来第一次用到阻塞概念,什么是阻塞?就是在调用函数的时候,如果不能马上得到想要的,就开始等待的状态,并不返回数据,当条件满足后立即返回,这就是函数阻塞,这篇笔记之前总结的命令都是非阻塞的,也就是无论有无结果都会立即返回,接下来具体看一下今天的这两个阻塞命令。 BLPOP 命令是 LP 阅读全文
posted @ 2021-11-15 16:51 Tracydzf 阅读(642) 评论(0) 推荐(0) 编辑
摘要:python redis 中blpop返回的是元组对象,因此返回的时候注意 lpop返回的是对象 阅读全文
posted @ 2021-11-15 16:39 Tracydzf 阅读(398) 评论(0) 推荐(0) 编辑
摘要:第一种方法就是最传统的多进程并发模型 (每进来一个新的I/O流会分配一个新的进程管理。)第二种方法就是I/O多路复用 (单个线程,通过记录跟踪每个I/O流(sock)的状态,来同时管理多个I/O流 。) 其实“I/O多路复用”这个坑爹翻译可能是这个概念在中文里面如此难理解的原因。所谓的I/O多路复用 阅读全文
posted @ 2021-06-19 16:09 Tracydzf 阅读(290) 评论(0) 推荐(0) 编辑
摘要:我们在申请上游读接口调用权限时,往往会多问一句,这接口是否支持批量查询。正所谓,能批量绝不单个,能异步绝不串行。而读接口的底层大部分是通过Redis的批量Mget查询实现,没有人敢放心地将数据库查询暴露给非内部的系统。 但是,每次查询Key的个数如果不加以控制的话,将是一个隐患。比如,元素数目从10 阅读全文
posted @ 2021-01-29 17:45 Tracydzf 阅读(313) 评论(0) 推荐(0) 编辑
摘要:local c = 0 local resp = redis.call('SCAN',c,'MATCH','authToken*','COUNT',10000) c = tonumber(resp[1]) local dataList = resp[2] for i=1,#dataList do l 阅读全文
posted @ 2021-01-29 16:26 Tracydzf 阅读(78) 评论(0) 推荐(0) 编辑
摘要:Linux 配置优化 我们在使用 Redis 过程中,可能更多的关注 Redis 本身的一些配置优化,如 AOF、RDB 配置、数据结构配置优化等。 但是很少关心 Redis 的载体,服务器的优化。而这往往为我们的项目运行带来灾难性的打击。因此服务器优化也是必不可少的 内存分配控制 Redis启动时 阅读全文
posted @ 2021-01-29 14:52 Tracydzf 阅读(95) 评论(0) 推荐(0) 编辑
摘要:Redis 集群并没有使用一致性hash,而是引入了哈希槽的概念。 Redis 集群有16384(2^14)个哈希槽,每个key通过CRC16校验后对16384取模来决定放置哪个槽,集群的每个节点负责一部分hash槽。这种结构很容易添加或者删除节点,并且无论是添加删除或者修改某一个节点,都不会造成集 阅读全文
posted @ 2021-01-28 16:51 Tracydzf 阅读(555) 评论(0) 推荐(0) 编辑
摘要:为什么redis集群最少需要6个节点?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。 这也算个思考吧,通过redis-trib.rb可创建redis集群,然后通过--replicas后面接的数字,表示1个主节点对应几个从节点,那么我就 阅读全文
posted @ 2021-01-28 16:40 Tracydzf 阅读(4668) 评论(0) 推荐(1) 编辑
摘要:1. 概述 Redis缓存的使用,极大的提升了应用程序的性能和效率,特别是数据查询方面。 但同时,它也带来了一些问题。其中,最要害的问题,就是数据的一致性问题,从严格意义上讲,这个问题无解。如果对数据的一致性要求很高,那么就不能使用缓存。 另外的一些典型问题就是,缓存穿透、缓存雪崩和缓存击穿。目前, 阅读全文
posted @ 2021-01-15 16:12 Tracydzf 阅读(174) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示