
Redis系列
文章平均质量分 95
码农阿豪@新空间
滴水穿石,毅力成就非凡,持之以恒,成功指日可待。
商务合作请联系工作室微信15279484656;
需要技术交流,面试分享,工作吐槽,答疑解惑,可加我进群唠嗑,里面都是各行程序员大佬
展开
-
没有使用Redis相关的代码或依赖,但在 `application.yaml` 配置文件中配置了Redis参数,项目启动时是否会报错
在Java项目中,如果没有使用Redis相关的代码或依赖,但在 `application.yaml` 配置文件中配置了Redis参数,项目启动时是否会报错,取决于项目的具体配置和使用的框架。原创 2024-07-04 15:57:44 · 57337 阅读 · 2 评论 -
Redis系列学习文章分享---第十八篇(Redis原理篇--网络模型,通讯协议,内存回收)
开发一个基于socket的自定义Redis客户端,可以直接与Redis服务器进行通信。// 创建Socket连接// 发送命令// 接收响应。原创 2024-03-25 13:15:00 · 17977 阅读 · 20 评论 -
Redis系列学习文章分享---第十七篇(Redis原理篇--数据结构,网络模型)
String类型可以存储任意类型的数据,包括文本、数字等,常用于缓存、计数器等场景。Redis也支持非阻塞I/O模型,通过设置非阻塞标志,使得网络请求不会阻塞等待处理完成,而是立即返回处理结果。Redis采用epoll函数实现IO多路复用,允许同时监视多个文件描述符的状态,以处理多个连接的IO操作。Redis采用poll函数实现IO多路复用,允许同时监视多个文件描述符的状态,以处理多个连接的IO操作。Redis采用I/O多路复用技术,可以同时监视多个文件描述符的状态,实现了高效的事件处理。原创 2024-03-25 08:45:00 · 21432 阅读 · 10 评论 -
Redis系列学习文章分享---第十六篇(Redis原理1篇--Redis数据结构-动态字符串,insert,Dict,ZipList,QuickList,SkipList,RedisObject)
在这个课程中,我们将深入探讨Redis的数据结构,包括动态字符串、intset、Dict、ZipList、QuickList、SkipList等,以及RedisObject的相关概念和实现原理。本文介绍了Redis中常用的数据结构,包括动态字符串、intset、Dict、ZipList、QuickList、SkipList等,以及RedisObject的相关概念和实现原理。这些数据结构在Redis中发挥着重要的作用,对于理解Redis的内部原理和优化应用具有重要意义。原创 2024-03-24 14:27:44 · 21611 阅读 · 11 评论 -
Redis系列学习文章分享---第十五篇(Redis最佳实践--设计优雅的key+合适的数据结构+持久化如何配置+慢查询问题解决)
Redis作为一款高性能的键值对存储数据库,在实际应用中有着广泛的用途。通过本文的介绍,您将了解到如何利用Redis提升系统性能、优化存储结构和解决常见问题。原创 2024-03-22 11:16:35 · 22102 阅读 · 30 评论 -
Redis系列学习文章分享---第十四篇(Redis多级缓存--封装Http请求+向tomcat发送http请求+根据商品id对tomcat集群负载均衡)
在实际应用中,为了提高系统性能和减少对后端资源的依赖,常常会采用多级缓存策略,其中Redis作为高速缓存扮演着重要的角色。查询Redis可以使用Redis的客户端工具或编程语言提供的Redis API,以下是Java中使用Jedis查询Redis的示例代码。Redis缓存预热可以在系统启动时或定时任务中进行,将热点数据预先加载到Redis缓存中,以提高系统的响应速度和用户体验。Nginx本地缓存可以通过配置Nginx的proxy_cache模块来实现,以下是一个简单的示例配置。原创 2024-03-22 10:51:46 · 21184 阅读 · 6 评论 -
Redis系列学习文章分享---第十三篇(Redis多级缓存--JVM进程缓存+Lua语法)
多级缓存是一种将数据存储在多个层级的缓存系统中,以提高缓存命中率和降低系统访问数据库的频率。通常包括本地缓存、分布式缓存和持久化缓存等多个层级。Caffeine是一个高性能的Java本地缓存库,提供了快速、高效的缓存功能,并支持多种缓存策略和功能扩展。Lua是一种轻量级的脚本语言,被广泛应用于游戏开发、嵌入式系统和其他领域。它具有简洁、灵活、高效等特点,是一种易于学习和使用的脚本语言。在Lua中,变量用于存储数据,可以是数字、字符串、布尔值等类型。循环用于重复执行相同的代码块,包括forwhile和。原创 2024-03-21 13:45:00 · 21718 阅读 · 16 评论 -
Redis系列学习文章分享---第十二篇(搭建哨兵集群+RedisTemplate连接哨兵+搭建分片集群+-散列插槽+集群伸缩 +故障转移+RedisTemplate访问分片集群)
这样,当客户端发送一个请求时,Redis可以根据请求的键确定对应的槽,然后查找该槽所属的节点,并将请求发送到相应的节点上。:当主节点不可用时,Redis集群会从当前的从节点中选举一个新的主节点来接管失效主节点的工作。通过一致性哈希算法和插槽的分配,Redis分片集群可以实现数据的分布式存储和负载均衡,确保数据在整个集群中均匀分布,并且可以根据集群的规模和节点的增减动态调整数据的分布情况。:一旦新的主节点被选举出来,Redis集群会更新集群配置,将新主节点的信息广播给其他节点。原创 2024-03-21 08:45:00 · 21728 阅读 · 6 评论 -
Redis系列学习文章分享---第十一篇(Redis高级实战篇---RDB演示 +RDB的fork原理+A0F演示 +RDB和AOF)
Redis的持久化是指将内存中的数据持久化到磁盘中,以保证数据在重启或宕机后不会丢失。Redis提供了两种主要的持久化方式:RDB(Redis DataBase)和AOF(Append Only File)。原创 2024-03-20 14:00:00 · 22232 阅读 · 17 评论 -
Redis系列学习文章分享---第十篇(Redis快速入门之附近商铺+用户签到+UV统计)
GE0数据结构是Redis提供的用于地理位置信息存储和查询的数据结构,可以实现附近商铺功能。将店铺的位置信息导入到GEO数据结构中,以便实现附近商户功能。通过GEO数据结构,实现查找用户附近的商户的功能。BitMap是Redis提供的用于位操作的数据结构,可以用于记录用户签到情况。实现用户签到功能,记录用户每天的签到情况。统计用户的连续签到天数,可以通过BitMap的位操作实现。HyperLogLog是一种基数估算算法,可以用于统计UV(独立访客)数量。测试HyperLogLog算法在大数据量下的统计性能。原创 2024-03-20 10:15:00 · 20935 阅读 · 9 评论 -
Redis系列学习文章分享---第八篇(Redis快速入门之达人探店--发布探店笔记 + 查看探店笔记 + 点赞功能 + 点赞排行榜)
在达人探店系统中,用户可以发布探店笔记,分享自己的探店经验和心得。用户可以查看其他用户发布的探店笔记,以获取探店灵感和建议。原创 2024-03-19 14:15:00 · 20573 阅读 · 14 评论 -
Redis系列学习文章分享---第七篇(Redis快速入门之消息队列--List实现消息队列 Pubsub实现消息队列 stream的单消费模式 stream的消费者组模式 基于stream消息队列)
消息队列是一种在应用程序之间传递消息的通信方式。它通常用于解耦消息的发送者和接收者,提高系统的可靠性、扩展性和性能。本文介绍了Redis消息队列的基本概念和常见实现方式,并通过示例代码演示了如何使用Redis Stream实现消息队列。希望本文能够帮助您更好地理解和应用Redis消息队列技术。原创 2024-03-19 09:15:00 · 22023 阅读 · 14 评论 -
Redis系列学习文章分享---第六篇(Redis实战篇--Redis分布式锁+实现思路+误删问题+原子性+lua脚本+Redisson功能介绍+可重入锁+WatchDog机制+multiLock)
Redisson是一个基于Redis的Java驻内存数据网格(In-Memory Data Grid)和分布式锁服务的框架,提供了丰富的分布式对象和服务支持。它封装了Redis的分布式对象和服务,简化了Java应用程序对Redis的操作。Redisson是一个基于Redis的Java驻内存数据网格(In-Memory Data Grid)和分布式锁服务的框架,提供了丰富的分布式对象和服务支持。它封装了Redis的分布式对象和服务,简化了Java应用程序对Redis的操作。原创 2024-03-18 10:15:00 · 21523 阅读 · 20 评论 -
Redis系列学习文章分享---第五篇(Redis实战篇--优惠券秒杀,全局唯一id 添加优惠券 实现秒杀下单 库存超卖问题分析 乐观锁解决超卖 实现一人一单功能 集群下的线程并发安全问题)
如果您有任何问题或建议,请随时在评论区留言。在优惠券秒杀系统中,全局唯一ID的生成非常关键,它可以用于标识每个优惠券的唯一性,并防止重复领取或使用。在分布式环境下,需要考虑集群下的线程并发安全问题,可以通过分布式锁等机制来保证并发操作的安全性。利用Redis的原子操作,可以实现高效地生成全局唯一ID,保证其在并发情况下的唯一性和一致性。通过Redis的乐观锁机制,可以解决库存超卖问题,确保每张优惠券在被领取时都是有效的。在高并发情况下,可能会出现库存超卖的问题,即某个优惠券被超卖,导致用户无法正常使用。原创 2024-03-18 09:30:00 · 20408 阅读 · 4 评论 -
Redis系列学习文章分享---第四篇(Redis快速入门之Java客户端--商户查询缓存+更新+双写一致+穿透+雪崩+击穿+工具封装)
缓存是一种临时存储机制,用于加速数据访问速度。在商户查询场景中,我们可以将经常被查询的商户信息存储在Redis缓存中,从而避免频繁访问数据库,提高查询效率。通过本文的介绍,相信大家对Redis缓存在商户查询场景中的应用有了更深入的了解。使用合适的缓存策略和技术手段,可以有效提高系统的性能和稳定性。原创 2024-03-16 13:48:44 · 26150 阅读 · 0 评论 -
Redis系列学习文章分享---第三篇(Redis快速入门之Java客户端--短信登录+session+验证码+拦截器+登录刷新)
本篇博客将深入探讨如何利用Redis实现短信登录功能,包括发送短信验证码、验证码登录和注册、登录校验拦截器等方面的实现细节。为了解决session共享的问题,我们可以将session存储到Redis中,实现分布式环境下的session共享。发送短信验证码是短信登录的重要环节之一,这里我们使用第三方短信服务商提供的API来发送短信验证码。基于Redis实现短信登录的流程和基于session的类似,只是将session存储到Redis中,实现分布式环境下的session共享。继续分析剩余的目录内容…原创 2024-03-16 00:00:24 · 26651 阅读 · 2 评论 -
Redis系列学习文章分享---第二篇(Redis快速入门之Java客户端--Jedis+连接池+SpringDataRedis+RedisTemplate+RedisSerializer+Hash)
StringRedisTemplate是RedisTemplate以字符串为中心的扩展,由于针对 Redis 的大多数操作都是基于字符串的,因此此类提供了一个专用类。本篇博客将深入探讨Redis的Java客户端,重点分析Jedis和Spring Data Redis等工具的使用方法和技巧,帮助读者更好地理解和应用Redis在Java项目中的功能和优势。Spring Data Redis是Spring框架提供的Redis的集成解决方案,简化了与Redis的交互操作。原创 2024-03-15 23:39:39 · 26072 阅读 · 4 评论 -
避免缓存失效的三大杀手:缓存击穿、穿透与雪崩的解决方案
通过本文的介绍,相信大家对Redis的缓存击穿、穿透和雪崩有了更深入的理解,并了解了如何通过合适的措施来避免和解决这些问题。在实际应用中,我们应该根据具体情况采取合适的策略来保证系统的稳定和可靠性。希望本文能够对你有所帮助,如果有任何疑问或建议,欢迎留言交流。原创 2024-02-26 12:13:27 · 28557 阅读 · 0 评论 -
分享Redis实现分布式锁
分布式锁的实现有三种方式数据库乐观锁基于Redis的分布式锁基于Zookeeper的分布式锁本文主要介绍了如何使用Java代码正确实现Redis分布式锁,对于加锁和解锁也分别给出了两个比较经典的错误示例。其实想要通过Redis实现分布式锁并不难,只要保证能满足可靠性里的四个条件。互联网虽然给我们带来了方便,只要有问题就可以google,然而网上的答案一定是对的吗?其实不然,所以我们更应该时刻保持着质疑精神,多想多验证。如果你的项目中Redis是多机部署的,那么可以尝试使用Redisson。原创 2024-02-25 15:37:44 · 28284 阅读 · 20 评论 -
Redis系列学习文章分享---第一篇(Redis快速入门之初始Redis--NoSql+安装redis+客户端+常用命令)
存储方式关系型数据库基于磁盘进行存储,会有大量的磁盘IO,对性能有一定影响非关系型数据库,他们的操作更多的是依赖于内存来操作,内存的读写速度会非常快,性能自然会好一些扩展性关系型数据库集群模式一般是主从,主从数据一致,起到数据备份的作用,称为垂直扩展。非关系型数据库可以将数据拆分,存储在不同机器上,可以保存海量数据,解决内存大小有限的问题。称为水平扩展。关系型数据库因为表之间存在关联关系,如果做水平扩展会给数据查询带来很多麻烦。原创 2024-02-19 13:17:31 · 28096 阅读 · 42 评论