关于redis 过期 key监听 数据量过大 导致消息延迟 20C

有没有一些好的监听超时的解决方案?比如我想设置一个时间,比如2分钟,然后我希望2分钟后会通知到我,可能会有大量的这种超时设置,比如成千上万个。有没有比较好的这种场景的解决方案?

2个回答

如果可以的话,建一个大规模的redis集群,1万个事件同时触发的话,建议你至少有100个以上的节点,建议每个节点至少能对应一个CPU。
然后通过hash算法,将你的1万个key分散到这100个节点上。
然后用你的进程去分别监听这100个节点,考虑到你的节点的吞吐量,以及及时响应能力,推荐为每个节点单独设置监听程序。
当然了,也可以1个监听程序对应多个redis节点。取决于你希望消灭延迟的量。
另外,对于你的监听程序,建议采用那些高响应能力,高性能的程序,例如nodejs或go.这个取决于你的研发能力。

ugrggame
ugrg 回复StackTc: 那就看你程序的消息消费能力了。总的有集群的。高性能必然会有集群的。如果真就一台redis,你的有其他办法让你的消息消费能力提升起来。
10 个月之前 回复
StackTc
StackTc 如果只有 一台 redis呢
10 个月之前 回复

这种情况呢,就是性能跟不上了,加服务器.

qq_36771051
紫-域 优秀
10 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
监听redis过期的key
一:需要监听过期的redis keys     在redis.conf 里添加 notify-keyspace-events "Ex" ,放到配置参数的最后。 二:不需要账号密码访问     改变redis.conf 里的protected-mode 的属性值为 no三:去掉绑定的地址    在redis.conf 里注销掉 bind 127.0.0.1./redis-service ../red...
Redis key过期监听
说明 redis key过期监听实际上是监听的(__keyevent@*__:expired)这个topic。 在使用redis key 过期通知一定要 开启key过期通知功能。 开启过期通知功能 编辑/etc/redis/redis.conf文件,添加或启用以下内容(过期通知): notify-keyspace-events Ex 或者登陆redis-cli之后,输入以下命令: con...
redis监听key过期
查看redis版本: redis-server -v redis-server --version 在window下,下载redis:https://github.com/MicrosoftArchive/redis/releases linux下可以直接在官网下载即可:https://redis.io/ 要使redis可以监听到key过期,需添加配置, 实现原理:在Redis2.8之后的版本...
redis过期key监听
修改配置文件 redis.conf notify-keyspace-events Ex # K    键空间通知,以__keyspace@__为前缀 # E    键事件通知,以__keysevent@__为前缀 # g    del , expipre , rename 等类型无关的通用命令的通知, ... # $    String命令 # l    List命令 # s
redis监听过期的key
/** * 自己写的监听类需要实现MessageListener,监听到redis key过期的时候会自动执行到onMessage方法上面 */ @Component(value ="SERVICE_NAME") public class RedisMessageListener implements MessageListener { @Override public voi...
redis key过期时间的监听
第一步修改配置文件############################# EVENT NOTIFICATION ############################### Redis can notify Pub/Sub clients about events happening in the key space.# This feature is documented at http:...
Redis 监听过期的 key 事件
Redis从2.8.0版本后,推出 Keyspace Notifications 特性。 Keyspace Notifications 此特性允许客户端可以以 订阅/发布(Sub/Pub)模式,接收那些对数据库中的键和值有影响的操作事件。 Redis 目前的订阅与发布功能采取的是发送即忘(fire and forget)策略, 如果程序需要可靠事件通知, 那么目前的键空间通知可能不适合:当订阅事...
redis监听key过期事件
redis监听key过期事件1.redis config2.新开终端redis-cli 监听过期事件3.新开终端redis-cli4.监听生效,第二步的redis-cli中收到了过期事件。其他:在laravel中监听redis key过期事件 1.redis config notify-keyspace-events Ex 或者在redis-cli 中执行 config set notify-ke...
Redis方式监听key值过期
1.首先redis配置文件中需要打开配置:我的是windows, 修改redis.windows-service.conf文件 搜索:notify-keyspace-events Ex 找到后,放开注释,保存 如下: 2.项目中加入redis配置: <bean id="connectionFactory" class="org.springframework.data...
SpringBoot监听Redis的Key过期事件
原文:https://springboot.io/t/topic/24 在一些业务场景中,我们希望在Redis的key过期时,得到通知。 Redis的配置 修改conf文件 notify-keyspace-events "Ex" 该配置表示监听key的过期事件,默认未开启 该配置的其他信息(可以监听N多事件),可以参阅配置文件的注释,非常详细 自定义监听器 该监听器会在key过期时...
redis key 过期时间
EXPIRE key 100 设置了过期时间,100秒后,key将自动被删除。 过期时间删除的方法有三种: 1、删除这个key,使用del command 2、用set or getset 命令会将key的expiration清空,事实上set和getset命令是替换了key对应的value,所以key的过期时间也就不复存在。所以,需要注意的是:incr,LPUSH,HSET命令是不会改变
redis的key的过期机制
redis是一个 高性能的key-value数据库.我们可以对其中的key设置一个过期时间,相关命令如下: 1.在创建一个key value 的时候同时设置过期时间 比如: set key1 value1 EX 60 表示: 我们想要将这个 key value 放到redis中,并在其中保存60秒. set key2 value2 PX 60 表示:我们想要将这个key valu
Redis key过期机制
Redis提供了一套“美好”的过期数据清理机制: 主动过期: Redis对数据是惰性过期,当一个key到了过期时间,Redis也不会马上清理,但如果这个key过期后被再次访问,Redis就会主动将它清理掉。 被动过期: 如果过期的Key一直没被访问,Redis也不会一直把它放那不管,它会每秒10次的执行以下的清理工作:         随机从所有带有过期时间的Key里取出20个      ...
redis key过期策略
通过EXPIRE key seconds命令来设置数据的过期时间。返回1表明设置成功,返回0表明key不存在或者不能成功设置过期时间。在key上设置了过期时间后key将在指定的秒数后被自动删除。被指定了过期时间的key在Redis中被称为是不稳定的。 Redis key过期的方式有三种: 惰性删除:当读/写一个已经过期的key时,会触发惰性删除策略,直接删除掉这个过期key(无法保证冷数据被及...
redis key 过期
[code=java]rnString token = authTokenService.findlastestToken();rnValueOperations value = redisTemplate.opsForValue();rnvalue.set("token", token, 7200, TimeUnit.SECONDS); // 7200秒有效期rn[/code]rn两小时后过期之后怎么更新呀
关于da+ds+datagrid数据量过大导致错误的问题
datagird读取了全部数据(50000多条) 导致应用程序出错。请问大家在处理大量数据的时候是怎样做的 如能解决小弟不胜感激.
Redis 监听失效KEY
1.修改redis.conf文件(windows的redis修改redis.windows-service.conf ) 将非注释的 notify-keyspace-events "" 改为notify-keyspace-events Ex # K 键空间通知,以__keyspace@<db>__为前缀 # E 键事件通知,以__keysevent@<db&...
Redis之监听失效KEY
修改Redis配置 1. 事件通过 Redis 的订阅与发布功能(pub/sub)来进行分发,故需要订阅 __keyevent@0__:expired 通道0表示db0,根据自己的dbindex选择合适的数字 2. 修改 redis.conf 文件  修改 notify-keyspace-events Ex 3. 重启redis , 即可测试失效事件的触发, 监听获取的值为 key re...
redis key过期事件实现过期提醒
2019独角兽企业重金招聘Python工程师标准>>> ...
关于redis key设置过期时长
使用EXPIRE key seconds 命令 设置key的过期时长
Redis key的过期策略(二)
Redis密钥以两种方式过期:被动方式和主动方式。 当某个客户端尝试访问密钥时,密钥被动过期,并且密钥被发现超时。 当然这还不够,因为有过期的密钥永远不会被再次访问。这些密钥无论如何都应该过期,所以周期性地Redis会在具有过期集的密钥中随机测试几个密钥。已经过期的所有密钥都将从密钥空间中删除。 具体来说,这就是Redis每秒做10次的事情: 从具有相关过期的密钥集中测试20个随机密钥。 ...
Redis批量设置Key过期
Redis批量设置Key过期,一般有两种方式:lua脚本和pipeline1。 lua脚本 -- expire_keys.lua 存放在classpath的script目录中 for i=1, ARGV[1], 1 do redis.call("PEXPIRE", KEYS[i], ARGV[2]); end //过期时间,pexpire的过期时间为ms单位,如果是秒请用expire...
Redis设置key过期时间
expire(key,seconds),其中seconds单位为 s容易混淆的有这两种:existss(key),检查key是否存在,存在返回1hexistx(key,field)查看哈希中key中的field是否存在
redis 获取key 过期时间
127.0.0.1:6379> keys *b4f107c6-e96c-4a1e-8402-a3be9a619847* 1) "shiro_redis_session:b4f107c6-e96c-4a1e-8402-a3be9a619847" 127.0.0.1:6379> get "shiro_redis_session:b4f107c6-e96c-4a1e-8402-a3be9a619847
Redis过期key清除策略
<p style="color:#262626;">rn 一套进军大厂的<span>阶梯</span>课程,涵盖Redis分布式高可用,蚂蚁金服面试题分布式锁,高可用HA架构分为11章50集rn</p>rn<p style="color:#262626;">rn 核心内容:rn</p>rn<p style="color:#262626;">rn 1)<span>基于大厂开发流程分析并实现</span><span>微信红包实战、布隆过滤器转盘功能实战、高可用秒杀实战</span> rn</p>rn<p style="color:#262626;">rn 2)分布式锁实战,基于分布式锁讲解Lua脚本和源码分析rn</p>rn<p style="color:#262626;">rn 3)<span>大厂面试题之</span><span>Redis</span><span>缓存持久化策略,剖析Redis</span><span>底层持久化和过期机制</span> rn</p>rn<p style="color:#262626;">rn 4)<span>面试分享高频大厂面试题之分布式系统高并发和高可用以及分布式一致性HASH算法原理</span>;rn</p>rn<p style="color:#262626;">rn <br />rn</p>
设置Redis的key的过期时间
        在key上设置一个过期时间(timeout),一旦时间到了,这个key将会被自动删除。这种特性术语通常叫做Redis的不稳定性。         一旦设置了过期时间,这个key只能被命令清除、删除或者重写其内容。这些命令包含del、set、getset以及所有的*store命令。这些命令只能改变key对应的value的存储值而不改变过期时间的设置。举个例子,使用incr改变k...
Redis监听自动过期事件
redis本身需要开启事件监听,配置事件监听规则,有如下两种方式 打开redis配置文件,打开下面这个配置,但是后续还需要重启redis服务 直接在redis-cli中用命令打开,这种方式不需要重启redis服务 实现代码,集成redis的代码此处就不提供了,只提供监听需要用到的代码 /** * Redis缓存配置类 */ @Configuration public cl...
Redis 消息订阅实现,监听Redis键过期
一、RedisTemplate使用 Java项目中,使用RedisTemplate设置键-值失效时间,redisTemplate.opsForValue.set(&quot;key&quot;, &quot;value&quot;, 10, TimeUnit.Hours); 设置该 键-值得失效时间为10个小时 二、监听该键值对失效 1. 配置redis服务器,修改redis.conf文件 2. 编写监听器 ...
SpringBoot监听reids的key值过期
实现redis的key值过期监听事件,且集成jedis实现redis的简单调用,内有功能备注
送信数据量过大导致System.ServiceModel.ProtocolException异常。
用dataset封装数据向webService发信时,当dataset中188条数据时能发信成功,但189条时立马出错。rn我有将maxReceivedMessageSize的值从65536改成655360,修改后收信可能件数从192件提高到了2107件,但发信能力还是没有提高。rn一旦发信超出188条时就抛出System.ServiceModel.ProtocolException异常,报(400) Bad Request错。rn请高手告诉我应该怎么设置。rnrn
activity之间数据传递,数据量过大导致无法启动
不知道各位开发童鞋有没有遇到过想把一个activity的集合传递到另一个activity的时候遇到TransactionTooLargeException异常,这是传输数据过大异常。安卓官方文档中提到“The Binder transaction buffer has a limited fixed size, currently 1Mb, which is shared by all tra
Node.js 更新Redis中key的过期时间
需求 最近有一个有趣的需求,用户家庭账号体系的建立,前提(小程序开发,前端无法检测小程序彻底退出),家庭中的成员账号A切换登录之前还需要判断另一个账B号的最后使用时间,如果账号A在两个小时内登录过,会对账号A有一个提示,是否挤掉账号B,同时账号B再调用请求的时候,也会收到被账号A挤掉通知,退出到授权登录界面。 解决办法 由于上面的需求想到的解决办法是使用Redis,Redis中为每一个账号设置一个...
Redis(四):Key读写及过期策略
DB结构体   Redis默认有16个数据库,存储数据前必须先通过SELECT INDEX来指定DB(默认index为0,DB结构体对应server.h/redisDb),DB主要存储并维护键值对信息。值得注意的是Redis目前没有命令可以获取当前正在操作的库,所以比较好的做法是每次操作前select。 typedef struct redisDb { dict *dict; ...
Redis如何批量设置 key过期时间 ?
Redis如何批量设置 key过期时间 ? 现在库中数据量较大,怎么能够给 一批key设置过期时间呢?rnrn
redis的key的操作(删除,过期,持久化)
<p>rn <span style="color:#333333;">本教程简单介绍了Linux的安装应用和redis数据库的应用知识。通过本教程能快速的掌握linux系统的安装,linux简单命令的使用,redis数据库在linux下的安装和使用,redis数据库在windown下的安装和使用,以及redis数据库和java的整合技术。</span> rn</p>
设置redis key的expire过期时间
Jedis jedis = null; try { jedis = JedisUtils.getResource(); jedis.hset(JedisUtils.getBytesKey(cacheKeyName), JedisUtils.getBytesKey(key), JedisUtils.toBytes(value)); jedis.expire((String) cacheKey
Python操作Redis之设置key的过期时间
对于一个已经存在的key,我们可以设置其过期时间,到了那个时间后,当你再去访问时,key就不存在了 有两种方式可以设置过期时间,一种是指定key从当前时间开始算起还能存活多久,时间单位有两个,一个是秒,一个是毫秒 第二种方式是指定key在某一个时间失效,这需要指定明确的年月日时分秒,如果你指定的这个时间已经早于当前时间,那么这个key会立即失效 现在,我们现在redis中添加两个key,分别
Redis(五):过期key删除策略
文章目录1、Redis 中 key 过期的设置2、过期key删除策略2.1、定时删除2.1.1、优点2.1.2、缺点2.2、惰性删除2.2.1、优点2.2.2、缺点2.3、定期删除2.3.1、优点2.3.2、缺点3、Redis 采用的过期键删除策略4、RDB 持久化功能对过期键的处理4.1、生成 RDB 文件4.2、载入 RDB 文件5、AOF 持久化功能对过期键的处理5.1、AOF 文件写入5....
redis过期key清除策略分析
Redis如何淘汰过期的keys: set name daniel 3600 惰性删除 : 概念:当一些客户端尝试访问它时,key会被发现并主动的过期 放任键过期不管,但是每次从键空间中获取键时,都检查取得的键是否过期,如果过期的话,就删除该键 特点:CPU友好,但如果一个key不再使用,那么它会一直存在于内存中,造成浪费 ...
redis热点数据、过期策略
—————— Redis配置文件 redis.conf 如果不设置maxmemory或者设置为0,64位系统不限制内存,32位系统最多使用3GB内存。 # maxmemory &amp;lt;bytes&amp;gt; maxmemory 268435456 如果设置了maxmemory,一般都要设置过期策略。打开Redis配置文件有如下描述,Redis有6种过期策略: # volatile-lru -&amp;gt...
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件