Redis
文章平均质量分 73
redis原理分析
EmineWang
计算机专业,资深java开发工程师,从事后端开发、架构方向,热爱技术,热爱分享,愿对你有所帮助,感恩大家的支持,欢迎来信交流~~
展开
-
redis热点数据
热点数据的存放场景:数据库中有2000w数据,而redis中只有100w数据,如何保证redis中存放的都是热点数据?方案:限定redis占用的内存,redis会根据自身数据淘汰策略,留下热数据到内存。所以可以计算100w数据大约占用的内存,然后设置一下redis内存限制即可,并将淘汰策略设置为allkeys-lru或者volatile-lru.设置redis最大占用内存: 打开redis配置文件,设置maxmemory参数,maxmemory是bytes字节类型哦! m原创 2022-03-01 15:37:32 · 6834 阅读 · 1 评论 -
redlock实现原理
https://zhuanlan.zhihu.com/p/151735807三、Redlock算法作者认为,我们应该使用多个Redis,这些节点是完全独立的,不需要使用复制或者任何协调数据的系统,多个redis系统获取锁的过程就变成了如下步骤:以毫秒为单位获取当前的服务器时间尝试使用相同的key和随机值来获取锁,对每一个机器获取锁时都应该有一个超时时间,比如锁的过期时间为10s那么获取单个节点锁的超时时间就应该为5到50毫秒左右,他这样做的目的是为了保证客户端与故障的机器连接,耗费多余的时间!超时间原创 2022-02-28 15:22:06 · 1401 阅读 · 0 评论 -
【限流】Redis和Lua脚本实现令牌桶算法
参考rateLimiter实现,触发式添加令牌。取令牌的时候,通过计算上一次添加令牌和当前的时间差,计算出这段时间应该添加的令牌数,然后往桶里加,curr_mill_second = 当前毫秒数last_mill_second = 上一次添加令牌的毫秒数r = 添加令牌的速率reserve_permits = (curr_mill_second-last_mill_second)/1000 * r脚本编写添加完令牌之后再执行取令牌逻辑— 获取令牌— 返回码— 0 没有令牌桶配置— -1原创 2021-11-23 18:11:09 · 1702 阅读 · 0 评论 -
关于Redis的二三事
关系型数据库1.以表格形式,基于行的数据存储,是一个二维模式2.存储的结构化的数据,数据存储有固定的模式,数据需要适应表结构表与表之间存在关联大部分关系型数据库都支持sql的操作,支持复杂的关联查询通过支持事务来提供严格的实时一致性redis 内存淘汰机制分布式锁 setNx限流 并发访问spring session内存计数秒杀...原创 2021-05-19 00:44:58 · 199 阅读 · 0 评论 -
MongoDB和Redis的区别
文章目录MongoDB和Redis的区别是什么应用场景MongoDB 更类似 MySQL,支持字段索引、游标操作,其优势在于查询功能比较强大,擅长查询 JSON 数据,能存储海量数据,但是不支持事务。Redis 是一个基于内存中的数据结构存储系统,支持多种类型的数据结构,可用作数据库,高速缓存和消息队列代理。MongoDB和Redis的区别是什么内存管理机制redis数据全部存放在内存,定期写入磁盘,当内存不够用时候,可以使用LRU、LFU等淘汰策略mongoDB数据存在内存,当内存不够用的原创 2021-05-18 23:32:55 · 510 阅读 · 0 评论 -
redis分布式实现和原理
主从复制:redis的主从复制配置简单,只需要在配置文件里面添加一行配置就行。例如:一主多从,186主节点,在每个slave节点中增加一行replicaof 192.168.1.186 6379主从复制原理:复制有两类:全量复制增量复制...原创 2021-05-14 01:41:53 · 2433 阅读 · 2 评论 -
redis持久化RDB和AOF
RDB在一定条件时候,把当前内存数据写入磁盘,生成一个dump.rdb的文件。redis重启的时候,会加载这个rdb文件。触发条件:自动触发:1.可以在redis.config配置触发频率 ,如save 900 1 #表示900秒内至少有一个key被修改2,shutdown触发,保证服务器正常关闭手动触发1.sava,手动生产redis内存快照,但是此时redis会阻塞,不能处理其他命令,一般不使用2.bgsava,开启一个子线程,负责redis的持久化。主线程可以继续处理命令。优点:原创 2021-05-11 01:36:21 · 197 阅读 · 2 评论 -
redisson 分布式锁
需求背景: 在分布式多机部署的情况下,我们要求某一个方法,只能同一个时间只能被一台机器的一个线程执行。在单机中,有synchronized,读写锁等方式可以解决同步问题。 但是,这些只能作用在同一个机器上,只能保证某一个机器中的方法,不会同时执行。多台机器还是可以同时执行。这时,就需要借助介质redisson,基于redis的分布式锁。。前提不多说了,先安装好redis,使用...原创 2018-05-04 18:43:29 · 15718 阅读 · 1 评论