上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 64 下一页
摘要: 为什么要将系统进行拆分 如果不拆分 一个大系统几十万行代码,20个人维护一份代码,代码经常改着改着就冲突了,各种代码冲突和合并要处理,非常耗费时间; 自己改动代码后,可能影响别人的。 每次上线都要做很多的检查,很多异常问题的处理。 拆分了之后 几十万行代码的系统,拆分成20个服务,平均每个服务就1~ 阅读全文
posted @ 2018-12-05 15:11 __Meng 阅读(799) 评论(0) 推荐(0) 编辑
摘要: 问题描述:多客户端同时并发写一个key,可能本来应该先到的数据后到了,导致数据版本错了。或者是多客户端同时获取一个key,修改值之后再写回去,只要顺序错了,数据就错了。 一个key的值是1,本来按顺序修改为2,3,4,最后是4,但是顺序变成了4,3,2,最后变成了2. 首先使用分布式锁,确保同一时间 阅读全文
posted @ 2018-12-05 10:22 __Meng 阅读(2039) 评论(0) 推荐(0) 编辑
摘要: 最经典的缓存+数据库读写的模式:cache aside pattern Cache Aside Pattern 读的时候,先读缓存,缓存没有的话,那么就读数据库,然后取出数据后放入缓存,同时返回响应 更新的时候,先删除缓存,然后再更新数据库 (很多地方都说应该先更新数据库,再删缓存) 为什么是删除缓 阅读全文
posted @ 2018-12-04 17:18 __Meng 阅读(3242) 评论(0) 推荐(0) 编辑
摘要: 缓存雪崩 如何应对缓存雪崩 首先要保证redis的高可用,可以使用redis cluster,开启redis持久化,redis之前要使用本地缓存,请求先走本地缓存,没找到再走redis 如果还是出现了缓存雪崩,开启限流组件,比如每秒5000个请求,只让其中2000个请求走数据库,剩下3000个请求走 阅读全文
posted @ 2018-12-04 10:56 __Meng 阅读(4248) 评论(0) 推荐(0) 编辑
摘要: redis cluster redis cluster是Redis的分布式解决方案,在3.0版本推出后有效地解决了redis分布式方面的需求 自动将数据进行分片,每个master上放一部分数据 提供内置的高可用支持,部分master不可用时,还是可以继续工作的 支撑N个redis master no 阅读全文
posted @ 2018-12-03 16:55 __Meng 阅读(49717) 评论(4) 推荐(5) 编辑
摘要: 持久化的意义 redis持久化的意义,在于故障恢复 比如你部署了一个redis,作为cache缓存,当然也可以保存一些较为重要的数据 如果没有持久化的话,redis遇到灾难性故障的时候,就会丢失所有的数据 如果通过持久化将数据搞一份儿在磁盘上去,然后定期比如说同步和备份到一些云存储服务上去,那么就可 阅读全文
posted @ 2018-12-03 11:25 __Meng 阅读(523) 评论(0) 推荐(0) 编辑
摘要: 什么是高可用 全年时间里,99%的时间里都能对外提供服务,就是高可用 主备切换 在master故障时,自动检测,将某个slave切换为master的过程,叫做主备切换。这个过程,实现了Redis主从架构下的高可用性。 哨兵是redis集群架构中非常重要的一个组件,主要功能如下 集群监控,负责监控re 阅读全文
posted @ 2018-11-30 16:15 __Meng 阅读(4743) 评论(0) 推荐(1) 编辑
摘要: 单机的redis几乎不太可能说QPS超过10万+,一般在几万。 除非一些特殊情况,比如你的机器性能特别好,配置特别高,物理机,维护做的特别好,而且你的整体的操作不是太复杂。 Redis通过主从架构,实现读写分离,主节点负责写,并将数据同步给其他从节点,从节点负责读,从而实现高并发。 Redis高并发 阅读全文
posted @ 2018-11-30 15:46 __Meng 阅读(28044) 评论(1) 推荐(0) 编辑
摘要: 过期策略 我们set key的时候,都可以给一个expire time,就是过期时间,指定这个key比如说只能存活1个小时,我们自己可以指定缓存到期就失效。 如果假设你设置一个一批key只能存活1个小时,那么接下来1小时后,redis是怎么对这批key进行删除的? 答案是:定期删除+惰性删除 所谓定 阅读全文
posted @ 2018-11-29 16:55 __Meng 阅读(23215) 评论(0) 推荐(12) 编辑
摘要: string 这是最基本的类型了,就是普通的set和get,做简单的kv缓存 hash 这个是类似map的一种结构,这个一般就是可以将结构化的数据,比如一个对象(前提是这个对象没嵌套其他的对象)给缓存在redis里,然后每次读写缓存的时候,可以操作hash里的某个字段。 key=150 value= 阅读全文
posted @ 2018-11-29 16:20 __Meng 阅读(3127) 评论(0) 推荐(0) 编辑
上一页 1 ··· 5 6 7 8 9 10 11 12 13 ··· 64 下一页