redis
文章平均质量分 89
redis
ZNineSun
大道至简,返璞归真
展开
-
注解方式优雅的实现Redisson分布式锁
通常我们都会将redisson实例注入到方法类里面,然后调用加锁方法进行加锁,如果其他业务方法也需要加锁执行,将会产生很多重复代码,由此采用AOP切面的方式,只需要通过注解的方式就能将方法进行加锁处理。/*** @date 2023年11月27日String errorDesc() default "系统正常处理,请稍后提交";/*** @date 2023年11月27日String errorDesc() default "系统正常处理,请稍后提交";/**原创 2023-11-27 20:08:05 · 848 阅读 · 0 评论 -
解决:ERR This instance has cluster support disabled
注意:不能通过命令config set cluster-enable yes来解决,因为config命令里面没有cluster-enable配置项。修改配置文件redis.conf中的cluster-enabled参数的值为yes并把参数前#去除,重启Redis服务器。出现这种提示的原因,是因为此Redis实例已经禁用了集群(默认状态下是禁用状态)。重启服务之后,执行:cluster nodes。原创 2023-11-21 16:22:47 · 1905 阅读 · 0 评论 -
SpringBoot+Redis BitMap 实现签到与统计功能
最近项目里需要集成签到和统计功能,连续签到后会给用户发放一些优惠券和奖品,以此来吸引用户持续在该品台进行活跃。下面我们一些来聊一聊目前主流的实现方案。因为签到和统计的功能涉及的数据量比较大,所以在如此大的数据下利用传统的关系型数据库进行计算和统计是非常耗费性能的,所以目前市面上主要依赖于高性能缓存功能来实现。先看看利用Mysql实现以上功能会有哪些缺陷和短板。原创 2023-09-15 17:23:06 · 1615 阅读 · 1 评论 -
同一份数据,Redis为什么要存两次
本文主要分析了set对象和zset对象的底层存储结构, intset 和 skiplist 的实现原理,并且重点分析了有序集合如何实现排序以及为何同时使用两种数据结构(字典和跳表)同时进行进行存储数据的原因。原创 2023-07-26 11:23:08 · 524 阅读 · 0 评论 -
基于Canal的Mysql&Redis数据同步实现
我们在做mysql与redis的数据同步时,往往采用的是代码层实现,或者通过等缓存框架。但是仍然有某些场景,比如说原项目无源码,或者不能进行二开时,就需要独立的第三方来实现数据同步。我们需要一种无代码入侵式的数据同步,完全由第三方组件管理。这就需要借助canal来实现mysql到redis的数据同步canal是阿里巴巴旗下的一款开源项目,纯Java开发。基于数据库增量日志解析,提供增量数据订阅&消费,目前主要支持了MySQL(也支持mariaDB。原创 2023-04-06 13:49:24 · 2393 阅读 · 1 评论 -
Redis中有哪些阻塞点以及如何解决
我们从 Redis 内部及外部因素总结一下有哪些会影响redis性能的因素。我们就以上四种情况简单分析一下。原创 2022-10-28 15:30:45 · 827 阅读 · 0 评论 -
4种Redis集群方案及优缺点对比
在服务开发中,单机都会存在单点故障的问题,及服务部署在一台服务器上,一旦服务器宕机服务就不可用,所以为了让服务高可用,分布式服务就出现了,将同一服务部署到多台机器上,即使其中几台服务器宕机,只要有一台服务器可用服务就可用。redis也是一样,为了解决单机故障引入了主从模式master节点故障后服务,需要人为的手动将slave节点切换成为maser节点后服务才恢复。redis为解决这一问题又引入了哨兵模式。原创 2022-10-24 19:25:00 · 388 阅读 · 0 评论 -
Redis 的大 Key 对持久化有什么影响?
当 AOF 写回策略配置了Always 策略,如果写入是一个大 Key,主线程在执行 fsync() 函数的时候,阻塞的时间会比较久,因为当写入的数据量很大的时候,数据同步到硬盘这个过程是很耗时的。AOF 重写机制和 RDB 快照(bgsave 命令)的过程,都会分别通过 fork() 函数创建一个子进程来处理任务。创建子进程的途中,由于要复制父进程的页表等数据结构,阻塞的时间跟页表的大小有关,页表越大,阻塞的时间也越长;原创 2022-10-10 13:19:58 · 250 阅读 · 0 评论 -
Redis+Guava实现高性能的二级缓存
我们开发中经常用到 Redis 作为缓存,将高频数据放在 Redis 中能够提高业务性能,降低 MySQL 等关系型数据库压力,甚至一些系统使用 Redis 进行数据持久化,Redis 松散的文档结构非常适合业务系统开发,在精确查询,数据统计业务有着很大的优势。同时我们在处理redis的热key时,最常用的解决方案便是通过本地缓存+redis缓存的方式,当然本地缓存的实现有很多,如:caffeine,ehcache,guava等,这样的话就可以将缓存的数据直接读到本地缓存了,本文通过google的。原创 2022-09-28 00:27:43 · 3180 阅读 · 1 评论 -
带你彻底了解redis
本文从redis数据类型到项目中的实战使用,包含两种使用方式:redisTemplate、Spring Cache再到缓存一致性问题都作出了详细解释,而后又对redis内容进阶到redis淘汰策略、redis持久化、redis主从复制、redis哨兵以及使用同步问题都做出来详细的解释,最后通过16中具体的缓存使用场景帮助大家理解原理到实战..................原创 2022-06-13 17:49:18 · 1456 阅读 · 0 评论 -
Reids解决海量重复提交问题
在目前高并发的生产环境下,一个对外暴露的接口往往会面临很多次请求,此时我们需要对这些请求进行过滤,来保证幂等性的问题。1.什么叫幂等性任意多次执行所产生的影响均与一次执行的影响相同所以按照这个幂等性的定义,我们通俗来讲就是对数据库的影响只能是一次性的,不能重复处理。2.如何保证幂等性1.数据库建立唯一性索引,可以保证最终插入数据库的只有一条数据2.token机制,每次接口请求前先获取一个token,然后再下次请求的时候在请求的header体中加上这个token,后台进行验证,如果验证通过删原创 2022-03-16 11:36:17 · 3088 阅读 · 5 评论 -
docker部署redis
1.拉取redis镜像docker pull redis安装成功之后使用docker images查看2.下载redis的配置文件点击此处下载下载完成之后解压,把redis.conf拿出来3.配置redis.config主要配置的如下:bind 127.0.0.1 #注释掉这部分,使redis可以外部访问daemonize no#用守护线程的方式启动requirepass 你的密码#给redis设置密码appendonly yes#redis持久化 默认是notcp-kee原创 2021-06-21 13:35:40 · 191 阅读 · 0 评论