摘要:
[toc] 可靠性 首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件: 互斥性。在任意时刻,只有一个客户端能持有锁。 不会发生死锁。即使有一个客户端在持有锁的期间崩溃而没有主动解锁,也能保证后续其他客户端能加锁。 具有容错性。只要大部分的Redis节点正常运行,客户端就可以加锁 阅读全文
posted @ 2019-06-04 21:10
小龟学架构
阅读(188)
评论(0)
推荐(0)
摘要:
[toc] 缓存穿透 定义 缓存穿透是指查询一个一定不存在的数据,因为缓存中也无该数据的信息,则会直接去数据库层进行查询,从系统层面来看像是穿透了缓存层直接达到db,从而称为缓存穿透 ,没有了缓存层的保护,这种查询一定不存在的数据对系统来说可能是一种危险,如果有人恶意用这种一定不存在的数据来频繁请求 阅读全文
posted @ 2019-06-04 21:02
小龟学架构
阅读(209)
评论(0)
推荐(0)
摘要:
[toc] String应用场景 分布式锁 setnx key value,当key不存在时,将 key 的值设为 value ,返回1。若给定的 key 已经存在,则setnx不做任何动作,返回0。 当setnx返回1时,表示获取锁,做完操作以后del key,表示释放锁,如果setnx返回0表示 阅读全文
posted @ 2019-06-04 20:58
小龟学架构
阅读(1811)
评论(0)
推荐(0)
摘要:
[toc] redis 常见数据结构以及使用场景分析 String Hash List Set Sort Set (ZSet) key 任何二进制序列都可以作为Redis的Key使用(例如普通的字符串或一张JPEG图片) 关于Key的一些注意事项: 不要使用过长的Key。例如使用一个1024字节的k 阅读全文
posted @ 2019-06-04 20:54
小龟学架构
阅读(1176)
评论(0)
推荐(0)
摘要:
[toc] 常见的删除策略 1.定时删除:在设置键的过期时间的同时,创建一个timer,让定时器在键的过期时间到达时,立即执行对键的删除操作。(主动删除) 对内存友好,但是对cpu时间不友好,有较多过期键的而情况下,删除过期键会占用相当一部分cpu时间。 2.惰性删除:放任过期键不管,但是每次从键空 阅读全文
posted @ 2019-06-04 20:49
小龟学架构
阅读(1138)
评论(0)
推荐(0)
摘要:
[toc] 持久化的原因 很多时候我们需要持久化数据也就是将内存中的数据写入到硬盘里面,大部分原因是为了之后重用数据(比如重启机器、机器故障之后回复数据),或者是为了防止系统故障而将数据备份到一个远程位置。 Redis的数据是存在内存中的,如果Redis发生宕机,那么数据会全部丢失,因此必须提供持久 阅读全文
posted @ 2019-06-04 20:46
小龟学架构
阅读(133)
评论(0)
推荐(0)
摘要:
[toc] 简介 redis全称:Remote Dictionary Server。 Redis本质上是一个Key Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。 因为是纯内存操作,Redis的性能非 阅读全文
posted @ 2019-06-04 17:06
小龟学架构
阅读(270)
评论(0)
推荐(0)
浙公网安备 33010602011771号