redis
文章平均质量分 83
晓风残月Lx
今宵酒醒何处,杨柳岸,晓风残月。
展开
-
Redis高级之IO多路复用和epoll(十二)
select、poll、epoll以及IO多路复用的分析原创 2023-04-14 00:05:59 · 1783 阅读 · 0 评论 -
Redis7之抢红包案例
用redis7实现一个简单的抢红包、记录红包金额的案例,发红包抢红包不加锁保证原子性,支持高并发每人只能抢一次记红包拆红包每次抢到的金额 = 随机取件(0,(剩余红包金额 ÷ 剩余人数N)× 2)这个公式保证了每次随机金额的平均值是相等的,不会因为抢红包的先后顺序而造成不公平。原创 2023-04-08 22:14:04 · 1068 阅读 · 0 评论 -
Redis7高级之Redlock算法和Redisson的使用(十)
该方案为了解决数据不一致的问题,直接舍弃了异步复制只使用 master 节点,同时由于舍弃了 slave,为了保证可用性,引入了 N 个节点,官方建议是 5。设置了maxmemory的选项,假如redis 内存使用达到上限,没有加上过期时间就会导致数据写满 maxmemory,这就需要内存淘汰策略。 加入在集群环境中,redis失败2台,可接受。2N+2 = 2 * 2+2 =6,部署6台。2N+2= 2 * 1+2 =4,部署4台。N = 2X + 1 (N是最终部署机器数,X是容错机器数)原创 2023-04-08 18:34:44 · 2382 阅读 · 0 评论 -
Redis7之实现分布式锁(九)
Redis7之实现分布式锁,实现的一个能用的分布式锁,能够在不是特别高的并发场景下应用,应用设计模式工厂模式来实现最终v8.0版本的分布式锁原创 2023-04-06 16:08:37 · 2194 阅读 · 0 评论 -
Redis7之缓存预热 + 缓存雪崩 + 缓存击穿 + 缓存穿透(八)
缓存预热、缓存雪崩、缓存击穿、缓存穿透,缓存问题产生原因解决方案缓存更新不一致数据变更、缓存时效性同步更新、失效更新、异步更新、定时更新缓存不一致同步更新失败、异步更新增加重试、补偿任务、最终一致缓存穿透恶意攻击空对象缓存、bloomFilter 过滤器缓存击穿热点key失效互斥更新、随即退避、差异失效时间缓存雪崩缓存挂掉快速失败熔断、主从模式、集群模式。原创 2023-04-05 18:01:15 · 1737 阅读 · 0 评论 -
Redis7高级之简单实现布隆过滤器BloomFilter + bitmap(七)
简单实现布隆过滤器BloomFilter + bitmap,对于布隆过滤器和 bitmap的讲解并且两者结合实现springboot + redis + mybatis的整合原创 2023-04-02 20:07:29 · 1566 阅读 · 0 评论 -
Redis7高级之案例实战 hyperloglog(五)
hyperloglog实现基数统计,统计单日一个页面的用户访问量(UV),即按照用户为维度计算,单个用户一天内多次访问也只算一次。多个key的合并统计,某个门户网站的所有模块的PV聚合统计就是整个网站的总PV。只是进行不重复的基数统计,不是集合也不保存数据,只记录数量而不是具体内容。因为主要的目标高效、巨量地进行计数,所以对存储的数据的内容并不太关心。也就是说它只能用于统计巨量数量,不太涉及具体的统计对象的内容和精准性。统计多个集合元素的聚合结果(交并差集合统计) set集合。原创 2023-03-30 23:07:39 · 1063 阅读 · 0 评论 -
Redis7高级之Redis与Mysql数据双写一致性工程案例(四)
下载并配置canal.deployer-1.1.6.tar.gz。MySQL主从复制原理,canal 工作原理介绍,mySQL、canal和redis 双写一致性写了一个通用模板,对于缓存处理使用的策略时先更新数据库,再删除缓存原创 2023-03-28 21:00:00 · 1804 阅读 · 4 评论 -
Redis7高级之缓存双写一致性之更新策略探讨(三)
缓存双写一致性之更新策略探讨,缓存双写一致性的介绍,对于缓存策略的介绍,对于可停机维护来说,对于缓存的处理策略直接服务降级或者下线升级,对于不可停机维护的情况下基本上分为四种更新策略,先更新数据库,在更新缓存,先更新缓存,再更新数据库,先删除缓存,再更新数据库,先更新数据库,再删除缓存,个人认为常用的就后两种,对于他存在的问题和解决方法都有完善的介绍原创 2023-03-27 23:15:00 · 1721 阅读 · 0 评论 -
Redis7高级之BigKey(二)
RedisBigKey问题的解决和案例,并讲解了如何在线上进行BigKey调优,keys * / flushall / flushdb 会造成阻塞。使用zscan每次获取部分元素,再使用ZREMRANGEBYRANK 命令删除每个元素。使用hscan每次获取少量field-value,再使用hdel删除每个field。使用sscan 每次获取部分元素,再使用 srem 命令删除每个元素。使用 ltrim 渐进式逐步删除,直到全部删除。原创 2023-03-26 09:23:10 · 1950 阅读 · 1 评论 -
Redis7高级之单线程和多线程(一)
Redis7单线程和多线程的具体分析,Redis由最初的单线程模型逐渐演变进化为如今的变化和过程,本文还对Unix网络编程的五种IO模型进行了概念的区分,详细的说明了Redis7的IO多路复用提升了Redis的性能,Redis7开启多线程的方法,默认关闭原创 2023-03-25 21:00:00 · 2825 阅读 · 1 评论 -
Redis7之Spring Boot集成Redis(十一)
Jedis Client 是Redis 官网推荐的一个面向 Java 客户端,库文件实现了对各类API进行封装调用Lettuce是一个Redis的Java驱动包,Lettuce翻译为生菜,没错,就是吃的那种生菜,所以它的Logo就是生菜。RedisTemplate连接redis单机和redis集群,RedisTemplate存入redsi乱码问题解决。原创 2023-03-23 21:00:00 · 2746 阅读 · 3 评论 -
Redis7笔记(完结)
Redis7详细笔记,基础篇和高级篇原创 2023-03-22 20:48:36 · 21560 阅读 · 12 评论 -
Redis7之集群(十)
由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis7的集群,其作用是提供在多个Redis节点间共享数据的程序集。Redis集群是一个提供在多个Redis节点间共享数据的程序集Redis集群可以支持多个MasterRedis集群支持多个Master,每个Master又可以挂载多个Slave读写分离支持海量数据的高可用支持海量数据的读写存储操作由于Cluster自带Sentinel的故障转移机制。原创 2023-03-21 19:13:47 · 2604 阅读 · 2 评论 -
Redis7之哨兵(九)
Redis7之哨兵详解以及哨兵配置,哨兵巡查监控后台master主机是否故障,如果故障了根据投票数自动将某一个从库转换为新主库,继续对外服务,俗称无人值守运维作用监控redis运行状态,包括master和slave当master down机,能自动将slave切换成新master哨兵的四个功能主从监控监控主从redis库运行是否正常消息通知哨兵可以将故障转移的结果发送到客户端故障转移如果master异常,则会进行主从切换,将其中一个slave作为新master配置中心。原创 2023-03-20 21:00:00 · 2097 阅读 · 10 评论 -
Redis7之发布订阅(七)最好别用
Redis7发布订阅是一种消息通信模式:发送者(PUBLISH)发送消息订阅者(SUBSCRIBE)接收消息,可以实现进程间的消息传递Redis可以实现消息中间件MQ的功能,通过发布订阅实现消息的引导和分流功能Redis客户端可以订阅任意数量的频道,类似我们微信关注多个公众号发布/订阅其实是一个轻量的队列,只不过数据不会被持久化,一般用来处理实时性较高的异步消息。原创 2023-03-18 14:30:00 · 1000 阅读 · 2 评论 -
Redis7之管道(六)
管道(pipeline)可以一次性发送多条命令给服务端。服务端依次处理完完毕后,通过一条响应一次性将结果返回,通过减少客户端与redis的通信次数来实现降低往返延时时间。pipeline实现的原理是队列,先进先出特性就保证数据的顺序性。也就是批处理将多个命令都存在一个txt文件中,然后一同批处理,验证批处理Pipeline 与原生批量原生批量命令是原子性(如:mset,mget),pipeline是非原子性原生批量命令一次只能执行一种命令,pipeline支持批量执行不同命令。原创 2023-03-18 08:20:22 · 1536 阅读 · 2 评论 -
Redis7之事务(五)
Redis 事务,MULTI、DISCARD、EXEC、watch监控、unwatch取消监控的详解,Redis 事务可以一次执行多个命令,本质是一组命令的集合。一个事务中的所有命令都会序列化,按顺序地串行化执行而不会被其他命令插入,不许加塞一个队列中,一次性、顺序性、排他性的执行一系列命令开启以 MULTI 开始一个事务入队将多个命令入队到事务中,接到这些命令并不会立即执行,而是放到等待执行的事务队列里面执行由EXEC命令触发事务。原创 2023-03-15 22:20:00 · 1760 阅读 · 0 评论 -
Redis7之持久化(四)
本文讲述了redis7的持久化,关于RDB和AOF的配置方法、基础的用法和注意事项,以及二者结合使用的用法、两者都关闭的缓存方法的讲解。原创 2023-03-11 19:49:25 · 3164 阅读 · 0 评论 -
Redis之十大类型(三)(下)
Redis7之十大类型,本文中包含了Redis位图(bitmap)的介绍和用法,由 0 和 1 表示的二进制位的 bit 数组。Redis基数统计(HyperLogLog)的用法和应用。Redis地理空间(GEO)的用法和应用。Redis流(Stream)的用法和应用,实现消息队列。Redis位域(bitfield)的用法和介绍原创 2023-03-14 00:00:00 · 2817 阅读 · 2 评论 -
Redis之十大类型(三)(上)
redis是k-v键值对进行存储,这里的数据类型是value的数据类型,key的类型都是字符串,Redis 字符串(String),Redis列表(List),Redis哈希(Hash),Redis集合(Set),Reids有序集合(Zset),以及他们五个的应用场景,朋友圈点赞、销量排名、可能认识的人、对商品进行排序显示等功能原创 2023-03-13 00:00:00 · 5364 阅读 · 11 评论 -
Redis7之linux安装(二)
redis7的下载安装以及启动原创 2023-03-07 22:12:27 · 4296 阅读 · 1 评论 -
Redis7之介绍(一)
Redis(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰富的数据结构,例如String、Hash、List、Set、SortedSet等等。数据是存在内存中的,同时Redis支持事务、持久化、LUA脚本、发布/订阅、缓存淘汰、流技术等多种功能特性提供了主从模式、Redis Sentinel和Redis Cluster集群架构方案。原创 2023-03-12 00:00:00 · 4850 阅读 · 0 评论