运维
未读
Docker 安装Redis
这是一篇关于使用Docker部署Redis的文章,介绍了如何在Docker中查找、拉取官方Redis镜像,并配置本地文件挂载以持久化数据。文章详细描述了如何创建本地文件夹、下载并修改redis.conf配置文件,设置守护进程、远程访问、数据持久化及连接密码等。接着,讲解了使用docker run命令启动Redis容器,映射端口、挂载配置和数据目录,并启用数据持久化。还介绍了如何设置容器自启动、查看容器运行状态和日志、以及使用redis-cli进行连接测试。
数据库
未读
Redis 缓存穿透、击穿、雪崩
这是一篇关于缓存穿透、击穿与雪崩的解决方案的文章,讨论了在分布式缓存中常见的三种问题及其解决方法。缓存穿透指缓存和数据库中都没有数据,导致每次都访问数据库,可通过缓存空值或布隆过滤器解决。缓存击穿发生在缓存过期时大量请求同时访问,导致数据库负载过大,常用的解决方案有异步定时更新和互斥锁。缓存雪崩则是大量缓存同时过期或缓存服务宕机,导致数据库瞬间承受大量请求,防治措施包括设置不同过期时间和采用集群架构。文章通过案例讲解这些问题及其常见的解决方案。
数据库
未读
Redis 适用场景
本文介绍了Redis在不同应用场景中的使用,包括缓存、会话存储、排行榜和计数器、消息队列、实时分析等。首先,Redis作为缓存层可以减少数据库查询次数,提高应用性能;通过使用Spring Boot和Redis缓存,缓存书籍信息来加速查询。其次,Redis用于Web应用中的会话存储,代替传统的服务器端存储方式,支持分布式部署和高效的会话管理。Redis还可以实现实时排行榜和计数器功能,例如博客平台的文章点赞排行榜,利用Redis的原子操作实现高效计数。Redis作为消息队列,适用于处理异步任务,如电商平台的订单处理,通过发布/订阅机制提升系统响应能力。最后,Redis的Sorted Set数据结构适合实时分析,如在线教育平台的用户在线时长排行榜,提供高效的用户行为分析功能。
数据库
未读
Redis 数据分片
这是一篇Redis集群分片算法的文章,介绍了Hash取模分片、一致性Hash分片和Redis Cluster数据分片的实现原理。首先,Hash取模分片简单有效,但在扩容时会导致大量数据迁移,且扩容时迁移的数据比例较高。接着,介绍了一致性Hash算法,通过虚拟节点和哈希环减少扩容时的数据迁移问题,然而也面临数据倾斜的问题。随后,文章详细阐述了Redis Cluster的分片机制,使用CRC16哈希算法将数据划分为16384个槽,并在节点增减时通过槽的均匀分配实现数据的平衡分布。最后,分析了为什么Redis选择哈希槽而非一致性哈希,强调了静态映射和数据均匀分布的优势,并解释了Redis Cluster分片的特点和优势。
数据库
未读
Redis 集群模式
这是一篇关于Redis集群模式的文章,主要介绍了Redis的三种集群模式:主从模式、哨兵模式和Redis Cluster。文章详细解释了每种模式的工作原理、优缺点,以及它们在保证Redis数据库稳定性和容错方面的作用。
数据库
未读
Redis 分布式锁实现
这是一篇关于Redis分布式锁实现的文章,介绍了通过RedisLock工具类和EmLock注解实现分布式锁的功能。文章首先展示了RedisLock工具类的加锁、解锁过程,其中通过Redis的setIfAbsent命令获取锁,利用Lua脚本确保解锁的安全性。接着,介绍了EmLock注解的使用,支持指定锁的范围(应用级别或线程级别),超时时间和是否自动释放锁。文章还详细讲解了EmLockAspect切面类的实现,通过AOP拦截加锁方法,确保锁的获取和释放。最后,提醒了在不同服务器或容器中使用定时任务时的时间同步要求和Redis服务依赖问题。
数据库
未读
Redis 基础
这是一篇Redis介绍与应用的文章,主要概述了Redis作为一种内存数据库的特性及其在缓存和分布式锁中的应用。文章首先解释了Redis的高性能和高并发优势,介绍了其与传统数据库的差异,并对比了Redis和Map/Guava缓存的区别。接着,文章详细分析了Redis与Memcached的不同,列举了Redis的常见数据结构(如String、Hash、List、Set、Sorted Set)及其对应的应用场景。此外,还讲解了Redis的过期时间设置、内存淘汰机制、持久化机制(RDB与AOF)、事务功能,以及解决缓存雪崩和缓存穿透问题的方法。文章还探讨了如何处理Redis的并发竞争问题与保证缓存与数据库的双写一致性。
数据库
未读
RedLock 分布式锁
这是一篇介绍Redis RedLock分布式锁实现的文章,主要讲解了如何通过RedLock算法保证分布式环境中的锁安全性、避免死锁和提高容错性。文章首先介绍了如何在单节点上实现分布式锁,接着讲解了RedLock算法的基本原理,即通过多个Redis节点(至少5个)申请锁并确保只有大部分节点存活时才有效锁。文章还说明了如何处理锁申请失败、放锁操作以及节点崩溃后的恢复机制。同时,文章探讨了RedLock的性能问题以及如何通过持久化机制避免数据丢失,确保系统稳定性。
数据库
未读
Redis中stringRedisTemplate
这是一篇介绍Redis中stringRedisTemplate方法的文章。文章介绍了stringRedisTemplate是Spring提供的用于操作Redis字符串类型数据的模板类,简化了Redis的操作。重点讲解了opsForValue()方法,该方法提供了多种操作字符串类型数据的功能,如设置值、获取值、增加或减少值、追加值、获取值长度及获取并设置新值。文章通过示例代码展示了如何使用这些方法来操作Redis中的字符串数据,帮助开发者更好地理解和使用stringRedisTemplate。