Redis
文章平均质量分 94
Redis
zzhongcy
因为站在了巨人的肩上,所以我看得更远。
当你发现自己的才华撑不起野心时,就请安静下来学习吧
展开
-
springboot-redis设置定时触发任务详解
从Redis 2.8.0开始,Redis加入了发布/订阅模式以及键空间消息提醒(keyspace notification)功能。键空间消息提醒提供了允许客户端通过订阅指定信道获取Redis数据变化的能力。需要注意的是,键空间消息提醒并非可靠的,它不会对订阅端是否接收到消息进行确认。例如某个订阅的客户端暂时断开连接,在其直到恢复连接期间发生的事件将无法再次获得。原创 2023-12-14 15:39:40 · 1575 阅读 · 0 评论 -
Redis实战之Redisson使用技巧详解
什么是 Redisson?来自于官网上的描述内容如下!Redisson 是一个在 Redis 的基础上实现的 Java 驻内存数据网格客户端(In-Memory Data Grid)。它不仅提供了一系列的 redis 常用数据结构命令服务,还提供了许多分布式服务,例如分布式锁、分布式对象、分布式集合、分布式远程服务、分布式调度任务服务等等。相比于 Jedis、Lettuce 等基于 redis 命令封装的客户端,Redisson 提供的功能更加高端和抽象,逼格高!转载 2023-12-07 19:13:39 · 1961 阅读 · 1 评论 -
Redis ACL安全策略详解
在 Redis6 之前的版本,我们只能使用 requirepass 参数给 default 用户配置登录密码,同一个 redis 集群的所有开发都共享 default 用户,难免会出现误操作把别人的 key 删掉或者数据泄露的情况。因此 Redis6 版本推出了 ACL(Access Controller List)访问控制权限的功能,基于此功能,我们可以设置多个用户,并且给每个用户单独设置命令权限和数据权限。原创 2023-11-03 14:57:23 · 1078 阅读 · 0 评论 -
spring-data-redis中同时使用set()、get()、increment()的问题
redis原创 2022-12-28 17:14:29 · 1674 阅读 · 0 评论 -
Redis4.0、5.0、6.0、7.0特性整理(持续更新)
最近研究研究新版本redis的新特性,网上查了查资料,这里记录一下。Redis 4¶ 模块系统 Redis 4.0 发生的最大变化就是加入了模块系统, 这个系统可以让用户通过自己编写的代码来扩展和实现 Redis 本身并不具备的功能,因为模块系统是通过高层次 API 实现的, 它与 Redis 内核本身完全分离、互不干扰, 所以用户可以在有需要的情况下才启用这个功能。目前已经有人使用这个功能开发了各种各样的模块, 比如 Redis Labs 开发的一些模块就可以在 http://...原创 2022-04-01 18:01:05 · 21238 阅读 · 3 评论 -
Redis 5 集群扩容、缩容详解
前言 虽然自己已经使用redis已经很就了,自己搭建的3主3从redis集群也很稳定,没有出现过问题,但是考虑到服务器突发情况,还是简单研究研究redis几群的“扩容、缩容”。 因为自己使用的redis-5.0.5版本,同时也网上查了查5.0.5版本的相关资料,同时添加了自己的一些操作和理解,在这里记录一下。一、环境准备OS hostname IP role portCentOS 7.6 redis01 10.4.7.100 master、sla...原创 2022-04-01 15:33:42 · 2442 阅读 · 0 评论 -
Redis中protected-mode模式详解
报错情况我搭建了一个Redis实例,并把protected-mode设置为了yes。protected-modeyes;我在其他机器连接这台Redis服务:redis-cli -h 1.1.1.1 -p 6379结果报错如下:(error) DENIED Redis is running in protected mode because protected mode is enabled, no bind address was specified, no authen.转载 2022-03-22 10:23:10 · 36677 阅读 · 0 评论 -
Redis:缓存穿透/缓存击穿/缓存雪崩,解决方案
这篇文章来自于网络,这里直接转载记录一下,供大家学习参考。1、前言 日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题。 一旦涉及大数据量的需求,如一些商品抢购的情景,或者主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度问题有严重的性能弊端,详细的磁盘读写原理请参考这一片[]。 在这一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读...原创 2021-11-24 11:03:34 · 2158 阅读 · 0 评论 -
redis从节点slave,fail,noaddr问题处理
一 问题描述查看集群状态,发现其中两个从节点异常(是fail状态)在问题节点上查看节点状态,发现它已脱离集群,且id都已发生了变化:即:id已经从76ba12f992228d906c368e0a5978013a210e9cd4 变成af40bb4ce7a4d623a812b716246c30df49b9db08/*若id没发生变化,直接重启下该从节点就能解决*/二 解决办法2.1 将该从节点剔出集群#在集群每个正常节点上执行cluster forget 故障从...原创 2021-08-25 16:46:49 · 3445 阅读 · 0 评论 -
SpringBoot Cache使用Caffeine + Redis 支持多级缓存
今天发现一篇多级缓存文章,觉得很有参考价值,虽然目前还没有用这种架构,但是值得学习,再这里记录一下为什么多级缓存缓存的引入是现在大部分系统所必须考虑的 redis 作为常用中间件,虽然我们一般业务系统(毕竟业务量有限)不会遇到如下图 在随着 data-size 的增大和数据结构的复杂的造成性能下降,但网络 IO 消耗会成为整个调用链路中不可忽视的部分。尤其在 微服务架构中,一次调用往往会涉及多次调用 例如pig oauth2.0 的 client 认证[1] Caffeine 来自转载 2020-10-19 17:18:25 · 4006 阅读 · 0 评论 -
Redis 架构模式详解(单机、主从、哨兵、集群模式),已经Redis规范详解
前言 话说有一名意大利程序员,在 2004 年到 2006 年间主要做嵌入式工作,之后接触了 Web,2007 年和朋友共同创建了一个网站,并为了解决这个网站的负载问题(为了避免 MySQL 的低性能),于是亲自定做一个数据库,并于 2009 年开发完成,这个就是 Redis。这个意大利程序员就是 Salvatore Sanfilippo 江湖人称 Redis 之父,大家更习惯称呼他 Antirez。 Redis 技术越来越火爆,其超高的性能,简洁轻量的设计,易上手,分布式架构的支持,在缓存转载 2020-09-07 14:16:10 · 1479 阅读 · 0 评论 -
Redis 中使用 Geo查找附近人
在 Redis 中使用 Geo在使用Redis进行Geo 查询时,我们要时刻想到它的内部结构实际上只是一个zset(skiplist)。通过 zset 的score排序就可以得到坐标附近的其他元素(实际情况要复杂一些,不过这样理解足够了),通过将score还原成坐标值就可以得到元素的原始坐标了。Redis 提供的 Geo 指令只有 6 个,很容易就可以掌握。增加geoadd指令携带集合名称以及多个经纬度名称三元组,注意这里可以加入多个三元组。127.0.0...转载 2020-08-11 15:06:46 · 316 阅读 · 0 评论 -
Redis的高级数据结构HyperLogLog
前言最近研究HyperLogLog,网上查了查资料,这里记录一下什么是HyperLogLogHyperLogLog是最早由Flajolet及其同事在 2007 年提出的一种估算基数的近似最优算法。但跟原版论文不同的是,好像很多书包括 Redis 作者都把它称为一种新的数据结构(new datastruct)(算法实现确实需要一种特定的数据结构来实现)。统计需求思考这样的一个场景: 如果你负责开发维护一个大型的网站,有一天老板找产品经理要网站上每个网页的UV(独...转载 2020-08-11 14:40:43 · 273 阅读 · 0 评论 -
Sprintboot 2.3.1链接redis,链接redis 127.0.0.1错误异常查找
介绍 以前使用Sprintboot链接redis使用都很正常,但是最近申请了一套服务器,在Sprintboot链接新redis集群时,Sprintboot日志报链接redis集群失败,日志里显示奇怪的redis IP,例如127.0.0.1。日志如下:2020-08-05 16:46:02.388 [http-nio-5252-exec-2] DEBUG io.lettuce.core.EpollProvider - Starting without optional epoll lib..原创 2020-08-05 16:38:06 · 1127 阅读 · 0 评论 -
SprintBoot 2.*中redisTemplate通过scan删除keys
1 问题其实用过redis的都明白,redis在真实项目中是很忌讳使用redisTemplate.keys("*")来获取所有key的,这样会使redis在一定时间内卡住。如果redis数据巨大的话,那等待时间很长,几乎可以说是停服了。2 解决方法使用scan命名3 具体操作查看lettuce-core源码,我们可以这样操作:3.1 参考lettuce-core源码测试代码我们通常是使用的集群,所以查看的是AdvancedClusterClientIntegrationTests原创 2020-05-29 15:20:23 · 2741 阅读 · 0 评论 -
Redis的scan命令
最近研究redis大数据处理,网上查了查资料,这里记录一下。在 redis 实际使用中,会遇到一个问题:如何从海量的 key 中找出满足特定前缀的 key 列表来?1. 不要使用 keys*redis 提供了一个简单暴力的指令 keys 用来列出所有满足特定正则字符串规则的 key。keys xxx*这个指令有致命的弊端,在实际环境中最好不要使用:这个指令没有 ...原创 2020-03-26 17:44:06 · 4492 阅读 · 0 评论 -
springboot2.0 序列化方式详解, @Cacheable乱码,以及GenericToStringSerializer VS Jackson2JsonRedisSerializer
最近研究(GenericToStringSerializer VS Jackson2JsonRedisSerializer)的对比,网上查了查资料,这里记录一下,有一些修改。前言sprintboot 1.x.x的版本时默认使用的jedis客户端, 现在是sprintboot 2.x.x版本默认使用的lettuce客户端,两种客户端的区别如下: Jedis和Lettuce都...原创 2019-10-17 12:00:23 · 2216 阅读 · 0 评论 -
springboot2.0 集成redis服务详解,以及 (Lettuce & Jedis)
前言在实际项目开发过程中,相信很多人都有用到过 redis 这个NoSQL,这篇文章就详细讲讲springboot如何整合 redisRedis 简介简单介绍下Redis:Redis是一个开源的使用 ANSI C语言编写,支持网络,可基于内存也可持久化的日志型,Key-Value数据库,并提供了多种语言的 API ,相比 Memcached 它支持存储的类型相对更多 (字符,哈希...原创 2019-10-16 16:43:24 · 44250 阅读 · 8 评论 -
sprintboot redis异常处理CacheErrorHandler详解以及性能问题分析
最近考虑redis异常处理,网上很多资料都是实现了CacheErrorHandler进行处理的,但是忽略了一个性能问题,下面介绍一下。redis配置其他配置忽略,只关心下面配置:# 连接超时时间(毫秒)spring.redis.timeout=400CacheErrorHandler实现如下:https://www.cnblogs.com/zhizhao/p/1015128...原创 2019-10-14 18:19:25 · 5871 阅读 · 1 评论 -
最大的Redis集群:新浪Redis集群揭秘
最大的Redis集群:新浪Redis集群揭秘Redis不是比较成熟的Memcache或者Mysql的替代品,是对于大型互联网类应用在架构上很好的补充。现在有越来越多的应用也在纷纷基于Redis做架构的改造。可以简单公布一下Redis平台实际情况2200+亿 commands/day 5000亿Read/day 500亿Write/day18T转载 2014-02-24 11:35:05 · 1866 阅读 · 0 评论 -
Ubuntu 12.10下安装Redis, 主从复制配置
Redis安装1.获取redis源码 从redis官网下载目前稳定版本:redis-2.8.6.tar.gz2.拷贝到用户目录下(更具自己目录),解压 cp redis-2.8.6.tar.gz /home/zcy tar -zxvf redis-2.8.6.tar.gz3.make & make install首先执行:原创 2014-02-25 10:28:02 · 1832 阅读 · 0 评论 -
Ubuntu 12.10下Redis主从复制配置
Ubuntu 12.10下Redis主从复制配置一、 原理 1.1 redis特点 Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面是关于redis主从复制的一些特点: 1.master可以有多个slave 2.除了多个slave连到相原创 2014-02-25 11:24:24 · 1667 阅读 · 0 评论 -
Redis与MySQL双写一致性如何保证?
Redis是目前众多NoSQL产品中非常有特点的一款,支持的数据类型和方法都非常丰富,做为一款具备持久化功能的软件,实际使中更多却是将其做为cache。三思在个人的测试环境中安装使用了两三天,这期间尽管文档看了不少,但其实收获不多,不过对于NoSQL产品的整体看法一直没变,我觉着各类型NoSQL产品都还只是工具,并且是小工具,称不上产品。小工具能起大作用这不假(redis目前在国内最知名的转载 2014-08-18 15:28:36 · 821 阅读 · 0 评论 -
mac下设置redis开机启动方法步骤
概述装了redis有一段时间了,每次运行的时候都需要手动在命令行里启动redis,而且窗口不能关闭,感觉很麻烦,所以就想把redis设置为开机启动。由于google打不开(伟大的GFW啊),所以百度了几篇文章,照着教程一步一步做还是没有成功,怪自己太笨了。这两天自己搭建了一个VPN,又能用google了,所以把这个问题解决了下,现在redis终于能开机启动了,High一下。转载 2017-04-28 09:32:44 · 7047 阅读 · 5 评论 -
使用redis来调用iptables,封禁恶意IP
话不多说,通常大多数站点都会有被薅羊毛的情况,防护无非也就是业务层做处理,短时内不再响应恶意请求啦.虽然不响应了,可还是会消耗资源的,比如我要从数据库(当然也可能是内存数据库)去查询下,你是不是恶意的IP. 那么能否网络层或应用层去处理呢?在前几篇文章有写过应用层方案,今天就写下网络层方法. 说起iptables 除非是专业人员,像普通开发者是不会使用的,一堆表一堆链的一...转载 2019-04-02 16:56:01 · 364 阅读 · 0 评论 -
Redis 5.0.5 redis.conf 配置文件说明
Redis 5.0.5 配置文件说明一般配置#修改daemonize为yes,即默认以后台程序方式运行(跟使用&号强制后台运行是一个意思)daemonize yes#修改默认监听端口(一般用默认的)port 6379#修改生成默认日志文件位置logfile "/home/logs/redis/redis.log"#配置持久化文件存放位置dir /home/...原创 2019-08-20 18:08:45 · 3166 阅读 · 0 评论 -
redis集群批量删除模糊key shell脚本
1. 命令删除:1. 1批量删除KeyRedis 中有删除单个 Key 的指令 DEL,但好像没有批量删除 Key 的指令,不过我们可以借助 Linux 的 xargs 指令来完成这个动作redis-cli keys "*" | xargs redis-cli del//如果redis-cli没有设置成系统变量,需要指定redis-cli的完整路径//如:/opt/redis/r...原创 2019-09-03 17:36:53 · 4757 阅读 · 0 评论 -
Redis 5 之后版本的高可用集群搭建
Redis 5.0之后版本的高可用集群搭建Redis系统介绍:Redis的基础介绍与安装使用步骤:https://www.jianshu.com/p/2a23257af57bRedis的基础数据结构与使用:https://www.jianshu.com/p/c95c8450c5b6Redis核心原理:https://www.jianshu.com/p/4e6b7809e10aRedi...转载 2019-09-04 16:15:49 · 480 阅读 · 0 评论 -
SpringBoot2.0的@Cacheable(Redis)缓存失效时间解决方案
1、注释介绍 @Cacheable、@CachePut、@CacheEvict spring cache 主要使用3个注释标签,即 @Cacheable、@CachePut 和 @CacheEvict,我们总结一下其作用和配置方法。表 1. @Cacheable 作用和配置方法@Cacheable 的作用 主要针对方法配置,能够根据方法的请求参数对其结果进行缓存 @C...原创 2019-09-04 17:27:03 · 43956 阅读 · 9 评论 -
Redis集群方案
Redis 集群方案根据一些测试整理出来的一份方案:1. Redis 性能对于redis 的一些简单测试,仅供参考:测试环境:Redhat6.2 , Xeon E5520(4核)*2/8G,1000M网卡Redis 版本:2.6.9 客户端机器使用redis-benchmark 简单GET、SET操作:1. 1单实例测试1. Value大小:10Byte转载 2014-02-24 11:32:00 · 10656 阅读 · 0 评论