Redis
RonTech
执着、认真;喜欢技术,但更热爱技术+行业;热爱生活,但更喜欢与人交往;喜欢学习,但更注重与人分享。
展开
-
Redis高可用之Redis Cluster
已经有了Redis主从+Sentinal(哨兵)为什么还需要Redis Cluster?解释这个问题之前,先看一个简单的Redis主从+Sentinel的架构图。从这个架构图不难看出,哨兵主要解决的问题是在主从架构下,主节点宕机的情况下,选择一个从节点提升为主节点继续对外提供服务。同时对Redis主从集群中的主节点、从节点进行监控。这个架构有如下缺点:主节点的容量大小决定了整个Redis集群的容量大小,即主节点的内存能够存储多少数据,整个集群就只能提供这么多数据的缓存服务;主节点宕机,在Sent原创 2020-12-02 09:21:18 · 658 阅读 · 0 评论 -
缓存四大问题及解决方案
问题一:缓存穿透,指缓存中没有数据,数据库中也没有数据。在进行数据的访问时,通过数据的key读取数据,但是该key对应数据在数据库中没有,在缓存中也没有,造成每次通过该key读取数据都会进行数据库操作,且每次读取都为null的情况。在大型项目中,这种无效的数据库操作会增加数据库的读压力。示例代码:public Object getData(String key){ if(redisTemplate.hasKey(key)){ return redisTemplate.opsFor原创 2020-12-01 08:47:51 · 2756 阅读 · 0 评论 -
Redis主从+Sentinal(哨兵)数据丢失问题分析
在使用Redis主从架构作为系统缓存服务,配合上Sentinal(哨兵)组件的监控、故障转移等特性,基本上来说就能够大部分缓存系统的需求。那么在这样一套架构中,在主从切换,数据复制过程中,会不会出现数据丢失?什么情况下数据会丢失?如何尽量减少数据丢失?这是本文需要跟大家一起学习的内容。从哲学的角度看,只要绝对都是伪命题,使用Redis主从架构+Sentinal(哨兵)组件,绝对不能够完全保证数据不丢失,那么在那种情况下会出现数据丢失呢?数据丢失场景分析-异步复制我们都知道,Redis主从架构中,客户端原创 2020-11-20 21:42:02 · 1701 阅读 · 0 评论 -
Redis主从复制原理剖析
生产环境中,为保证Redis缓存系统的高可用性,对于Redis集群,一般都会采用主从架构来实现读写分离。那么主从架构下,主节点和从节点间,数据是如何进行复制和同步,中间是一个什么样的流程,通过本文,想跟众博友和同行一起讨论。首先看一个图。上图展示了Slave节点第一次连接主节点和短暂断开后再次连接主节点的情况下,数据复制的流程。当从节点启动后,会根据自身配置文件中slave of配置的内容,得到主节点的IP和端口。从节点向主节点发送一个psync命令(如果主节点设置了秘钥等安全信息,则需带上主原创 2020-11-19 22:36:15 · 304 阅读 · 0 评论 -
深入剖析Redis高可用之Sentinal(哨兵)原理
生产环境中,对于任何的软件系统或者其组件,都需要保证其高可用性。引入Redis做缓存系统,首先通过主从架构,可以解决系统的并发瓶颈。一般情况下,在任何一哥Redis集群中,最最经典的用法都是一主多从的架构,主节点负责接收写请求,从节点接收读请求,即缓存的读写分离架构。但从上图的架构上看,是不能保证其高可用的,因为虽然从节点有多个,但是主节点只有一个,一旦主节点宕机,整个集群基本就丧失了接收新的写请求的能力,进而这个集群就瘫痪了。那么既然是高可用,就需要一种机制,能够在主节点宕机之后,能够从从节点中选原创 2020-11-17 23:58:32 · 454 阅读 · 0 评论 -
深入剖析Redis持久化机制
Redis持久化的意义Redis持久化的意义,主要体现在灾难恢复方面,即在Redis突然宕机重启后,能够快速恢复数据并对外提供服务。在学习Redis的时候,大家都知道是用来作为缓存,而缓存,普遍思维都是认为,用来存储经常读取但是变化频次比较低的数据,这类数据通常不会很多,比如一些数据字典等,即使Redis服务宕机,大概率情况下不需要从持久化文件恢复。而一般的处理思维是,服务读取数据时,如果未在缓存中命中,那么直接读数据库(如MySQL),读到数据后返回给客户的同时,在Redis重新存储一份。下次读取时就原创 2020-11-15 00:29:26 · 273 阅读 · 2 评论 -
Spring Boot整合Redis实现简单的分布式锁
随着微服务等分布式架构的快速发展及应用,在很多情况下,我们都会遇到在并发情况下多个线程竞争资源的情况,比如我们耳熟能详的秒杀活动,多平台多用户对同一个资源进行操作等场景等。分布式锁的实现方式有很多种,比如基于数据库、Zookeeper、Redis等,本文我们主要介绍Spring Boot整合Redis实现分布式锁。原创 2019-05-31 18:53:50 · 14881 阅读 · 13 评论 -
12、Spring技术栈-Redis Sentinel实现高可用缓存集群方案实战
Redis Sentinel是一个分布式系统,Sentinel运行在有许多Sentinel进程互相合作的环境下,它本身就是这样被设计的。通过Redis Sentinel模式,我们可以实现缓存系统的高可用,本文从实践的角度为读者讲解具体实现方案。原创 2017-11-15 15:21:46 · 1333 阅读 · 0 评论 -
Redis持久化(persistence)
RDB 持久化可以在指定的时间间隔内生成数据集的时间点快照(point-in-time snapshot)。AOF 持久化记录服务器执行的所有写操作命令,并在服务器启动时,通过重新执行这些命令来还原数据集。 AOF 文件中的命令全部以 Redis 协议的格式来保存,新命令会被追加到文件的末尾。转载 2017-11-11 15:01:35 · 433 阅读 · 0 评论 -
解密Redis持久化
什么是持久化,简单来讲就是将数据放到断电后数据不会丢失的设备中。也就是我们通常理解的硬盘上。转载 2017-11-11 14:51:56 · 424 阅读 · 0 评论 -
Redis主从(Master-Slave)复制(Replication)设置
Redis 支持简单且易用的主从复制(master-slave replication)功能, 该功能可以让从服务器(slave server)成为主服务器(master server)的精确复制品。原创 2017-11-10 17:31:51 · 3083 阅读 · 0 评论 -
Redis配置文件参数说明
Redis 的配置文件位于 Redis 安装目录下,文件名为 redis.conf。转载 2017-11-09 18:19:50 · 317 阅读 · 0 评论 -
10、Spring技术栈-整合Redis,使用RedisTemplate实现数据缓存实战
整合Redis,使用RedisTemplate实现数据缓存原创 2017-11-07 18:24:24 · 5008 阅读 · 0 评论 -
Redis集群配置
1、集群规划要让Redis4.0.1集群正常工作至少需要3个Master节点,每个 Master 节点要配备至少 1 个 Slave 节点。 根据以上特点和要求, 进行如下的集群实施规划:使用 6 台服务器(物理机或虚拟机) 部署 3 个 Master + 3 个 Slave; IP 端口 集群端口(服务端口+10000) 192.168.199.249 6382 16382原创 2017-10-27 16:23:15 · 2224 阅读 · 2 评论 -
Redis集群配置-配置过程中出现的问题及解决方案
在Centos下,手动安装Ruby,安装完成后,输入命令行ruby后,却提示-bash: /usr/bin/ruby: No such file or directory解决问题之前,先确认一个情况,输入命令/usr/local/bin/ruby --version如果有版本信息,那说明ruby被装到了该目录下,而非系统认为的 /usr/bin/ruby解决方法是在系统默认运行ruby的位置原创 2017-10-27 16:35:19 · 936 阅读 · 0 评论 -
Spring整合Redis实现数据缓存
一、什么是RedisRedis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间(geospatial) 索引半径查询。 Re...原创 2017-01-16 17:00:32 · 11085 阅读 · 2 评论