![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
分布式缓存Redis
文章平均质量分 91
分布式缓存Redis
奋斗的小媛
这个作者很懒,什么都没留下…
展开
-
Redis 线程模型
一、概述【1】Redis 是基于 Reactor模式开发的网络事件处理器:这个处理器被称为文件事件处理器(file event handler),这个文件事件处理器是单线程的,所以 Redis 才叫做单线程的模型:■ 文件事件处理器使用 I/O 多路复用(multiplexing)机制监听多个套接字 Socket,根据 Socket 上的事件来选择对应的事件处理器进行处理。■ 当被监听的套接字准备好执行连接应答(accept)、读取(read)、写入(write)、关闭(close)等操作时。与操作原创 2021-05-03 20:56:01 · 198 阅读 · 0 评论 -
Redis 基础数据结构
Reids 所有的数据结构都以唯一的 key 字符串作为名称,然后通过这个唯一的 key 值来获取相应的 value 数据。不同的数据结构差异就在于 value 的结构不一样。*一、*Redis 五大数据类型【1】String(字符串):String 是 Redis 最基本的类型,一个 key 对应一个 value。String 类型是二进制安全的。意思是 Redis 的 String 可以包含任何数据。一个键最大能存储 512MB。【2】Hash(哈希):Hash 是一个键值对集合,类似 Ja.原创 2021-04-22 23:24:09 · 707 阅读 · 8 评论 -
Redlock(redis分布式锁)原理分析
Redlock(redis分布式锁)原理分析Redlock:全名叫做 Redis Distributed Lock;即使用redis实现的分布式锁;使用场景:多个服务间保证同一时刻同一时间段内同一用户只能有一个请求(防止关键业务出现并发攻击);官网文档地址如下:https://redis.io/topics/distlock这个锁的算法实现了多redis实例的情况,相对于单redis节点来说,优点在于 防止了 单节点故障造成整个服务停止运行的情况;并且在多节点中锁的设计,及多节点同时崩溃等各种意外情原创 2021-04-13 11:15:47 · 244 阅读 · 0 评论 -
基于redis实现分布式锁(SETNX和Redisson)(以扣减库存来当作案例)
一:实现原理:利用redis中的set命令来实现分布式锁。从Redis 2.6.12版本开始,set可以使用下列参数:SET KEY VALUE [EX seconds] [PX milliseconds] [NX|XX]EX second :设置键的过期时间为second秒。 SET key value EX second效果等同于SETEX key second value 。PX millisecond :设置键的过期时间为millisecond毫秒。 SET key value PX mi转载 2021-03-22 23:23:50 · 1534 阅读 · 0 评论 -
Redisson实现分布式锁原理
Redisson实现分布式锁原理一、高效分布式锁当我们在设计分布式锁的时候,我们应该考虑分布式锁至少要满足的一些条件,同时考虑如何高效的设计分布式锁,这里我认为以下几点是必须要考虑的。1、互斥在分布式高并发的条件下,我们最需要保证,同一时刻只能有一个线程获得锁,这是最基本的一点。2、防止死锁在分布式高并发的条件下,比如有个线程获得锁的同时,还没有来得及去释放锁,就因为系统故障或者其它原因使它无法执行释放锁的命令,导致其它线程都无法获得锁,造成死锁。所以分布式非常有必要设置锁的有效时间,确保系统转载 2021-03-20 20:50:51 · 8283 阅读 · 1 评论 -
Redis 分布式锁
在Java中,关于锁我想大家都很熟悉。在并发编程中,我们通过锁,来避免由于竞争而造成的数据不一致问题。通常,我们以synchronized 、Lock来使用它。但是Java中的锁,只能保证在同一个JVM进程内中执行。如果在分布式集群环境下呢?一、分布式锁分布式锁,是一种思想,它的实现方式有很多。比如,我们将沙滩当做分布式锁的组件,那么它看起来应该是这样的:加锁在沙滩上踩一脚,留下...转载 2020-04-12 19:02:40 · 377 阅读 · 0 评论 -
Redis 主从复制
一、Redis 复制复制(Replication):是 Redis 实现高可用的基础。且在复制过程中,主节点/从节点都是非阻塞的,但是从节点在执行同步时使用的是旧数据集提供查询。Redis 复制启动图与流程说明:1)、当从节点连接到主节点时,会发送 psync 命令给主节点,runId 是主节点的 ID,如果没有默认是 -1;offset 是从节点保存复制偏移量,主节点根据复制偏移...原创 2020-04-12 17:42:33 · 90 阅读 · 0 评论 -
redis集群-主从同步、哨兵模式、Cluster 集群
集群的三种模式:一、主从同步/复制redis有俩种复制模式:Rdb和aofredis持久化问题;会有数据损失吗,开启aof的持久化吗;redis提供2种持久化方案。rdb和aofredis有自己默认的持久化方案 (Rdb 方案)Rdb(默认):在指定的时间间隔内将内存中的数据集快照写入磁盘,实际操作过程是fork一个子进程,先将数据集写入临时文件,写入成功后,再替换之...原创 2020-04-06 19:43:14 · 5659 阅读 · 0 评论 -
redis的过期策略都有哪些?手写一下LRU代码实现?
redis的过期策略都有哪些定期删除+惰性删除。定期删除:redis默认是每隔 100ms 就随机抽取一些设置了过期时间的key,检查其是否过期,如果过期就删除。注意这里是随机抽取的。为什么要随机呢?你想一想假如 redis 存了几十万个 key ,每隔100ms就遍历所有的设置过期时间的 key 的话,就会给 CPU 带来很大的负载!惰性删除 :定期删除可能会导致很多过期 key 到了...原创 2020-04-06 18:53:39 · 280 阅读 · 0 评论 -
redis 都有哪些数据类型?分别在哪些场景下使用比较合适?
Redis五种数据结构及操作如下:对redis来说,所有的key(键)都是字符串。1.String 字符串类型是redis中最基本的数据类型,一个key对应一个value。常用命令:基础命令set :设置存储在给定键中的值 get:获取存储在给定键中的值 del:删除存储在给定键中的值字符串INCR:返回增加后键的值 DECR:返回删除后键的值127.0...原创 2020-04-06 18:17:38 · 246 阅读 · 0 评论 -
Redis 和 Memcached 有什么区别?Redis 的线程模型是什么?为什么单线程的
对于 redis 和 memcached 我总结了下面四点。redis支持更丰富的数据类型(支持更复杂的应用场景):Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,zset,hash等数据结构的存储。memcache支持简单的数据类型,String。Redis支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可以再次加载进行使用,而Memecache把数据全...原创 2020-04-06 17:03:05 · 338 阅读 · 0 评论 -
在项目中缓存是如何使用的?缓存如果使用不当会造成什么后果?
项目里要用缓存,主要是俩用途,高性能和高并发高性能假设这么个场景,你有个操作,一个请求过来,吭哧吭哧你各种乱七八糟操作mysql,半天查出来一个结果,耗时600ms。但是这个结果可能接下来几个小时都不会变了,或者变了也可以不用立即反馈给用户。那么此时咋办?缓存啊,折腾600ms查出来的结果,扔缓存里,一个key对应一个value,下次再有人查,别走mysql折腾600ms了。直接从缓存里...转载 2020-04-06 12:41:57 · 115 阅读 · 0 评论 -
Java面试---Redis
一、什么是 RedisRedis(Remote Dictionary Server 远程字典服务) 本质上是一个 Key-Value 类型的内存数据库,和 Memcached类似,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)等数据结构。这些数据类型都支持push/pop、add/remove及取交集并集和差集及...原创 2020-02-18 21:03:51 · 155 阅读 · 0 评论 -
redis应用范围及应用场景
1.1授人以鱼不如受人以渔redis(remote dictionary service(远程服务字典))是互联网领域使用最广泛的存储中间件,包括的超高的性能、完美的文档、简洁易懂的源码和丰富的客户端库支持在开源中间件领域广受好评。1.1 redis能用来做什么1、缓存2、分布式锁1.2 redis应用范围hash:1、记录帖子的点赞数、评论数和点击数2、记录帖子的...原创 2019-12-12 15:02:40 · 282 阅读 · 0 评论 -
万亿级 KV 存储架构与实践
万亿级 KV 存储架构与实践来源于美团KV 存储作为美团一项重要的在线存储服务,承载了在线服务每天万亿级的请求量。第一部分讲述了美团 KV 存储的发展历程;第二部分阐述了内存 KV Squirrel 架构和实践;第三部分介绍了持久化 KV Cellar 架构和实践;最后分享了未来的发展规划和业界新趋势。一、美团点评 KV 存储发展历程美团第一代的分布式 KV 存储如下图左侧的架构所示,相信很多公司都经历过这个阶段。在客户端内做一致性哈希,在后端部署很多的 Memcached 实例,这样就实现了转载 2021-03-15 19:12:27 · 284 阅读 · 0 评论 -
Java面试--Redis
redis是什么语言开发的;Redis采用的是基于内存的采用的是单进程单线程模型的KV 数据库,由C语言编写。redis底层的实现原理有去研究过吗;为什么redis的性能能达到这么快呢;官方提供的数据是可以达到100000+的QPS(每秒内查询次数)。1、完全基于内存,绝大部分请求是纯粹的内存操作,非常快速。数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作...原创 2020-03-23 17:29:01 · 1121 阅读 · 0 评论