随笔分类 - redis
redis
摘要:一、异常场景 如下表所示,redis集群6个节点分别部署在3台机器上,每台机器分布一个主节点和一个从节点 机器 redis主节点端口 redis从节点端口 主机1 7001 7004 主机2 7003 7006 主机3 7005 7002 将主机1关闭,redis集群发生主从切换,从节点7006升级
阅读全文
摘要:keys 的操作会导致数据库暂时被锁住,其他的请求都会被堵塞;业务量大的时候会出问题 当需要扫描key,匹配出自己需要的key时,可以使用 scan 命令 java代码实现如下: /** * 使用scan遍历key * 为什么不使用keys 因为Keys会引发Redis锁,并且增加Redis的CPU
阅读全文
摘要:time命令 127.0.0.1:6379> time 1) "1614664520" 2) "720321" 第一行表示已经过去的秒数,第二行为当前这一秒已经过去的微秒数
阅读全文
摘要:1、实现逻辑 记录用户每次的访问时间,因此对于每个用户,用列表类型的键记录他最近100次访问的时间。如果键中的元素超过100个,就判断时间最早的元素距离现在的时间是否小于1分钟,如果是,则表示用户最近1分钟的访问次数超过100次,如果不是就将当前时间加入列表中,同时把最早的元素删除 2、LUA脚本
阅读全文
摘要:Redis的内存淘汰策略是指在Redis的用于缓存的内存不足时,怎么处理需要新写入且需要申请额外空间的数据。 noeviction:当内存不足以容纳新写入数据时,新写入操作会报错。 allkeys-lru:当内存不足以容纳新写入数据时,在键空间中,移除最近最少使用的key。 allkeys-rand
阅读全文
摘要:springboot2.x集成redis。redis节点故障,集群状态ok的情况下,程序使用redisTemplate操作redis一直报错: Redis command timed out; nested exception is io.lettuce.core.RedisCommandTimeo
阅读全文
摘要:错误: 原因: SpringBoot2.X版本开始Redis默认的连接池都是采用的Lettuce。当节点发生改变后,Letture默认是不会刷新节点拓扑的。 方案一:把lettuce换成jedis 只需要在pom.xml里调整一下依赖的引用 <dependency> <groupId>org.spr
阅读全文
摘要:ttl命令 ttl 'keyName' 返回 -2 表示这个key已过期,已不存在 返回 -1 表示这个key没有设置有效期 返回0以上的值 表示是这个key的剩余有效时间
阅读全文
摘要:目录 一、安装redis需要的依赖 二、安装redis 三、部署redis集群 一、安装redis需要的依赖 1、安装GCC 1、检查是否安装gcc 命令: gcc -v 如果能输出gcc版本信息,,说明安装了gcc。反之需要安装gcc 2、安装gcc 2.1创建目录/usr/local/gccSr
阅读全文
摘要:1. maven <!-- redisson 分布式锁 --> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.11.2</version> </dependency>
阅读全文
摘要:客户端C2使用SETNX命令获取锁 假设客户端C1已经崩溃但是仍然持有锁,所以Redis返回false给客户端C2 客户端C2使用GET命令获取锁并检查锁是否已经过期,如果没有过期,则继续等待一段时间并重新重试 如果锁已经过期,客户端C2尝试 GETSET lock.name <current Un
阅读全文
摘要:Redis Server 监控 redis存活监控:redis本地监控使用ping,如果指定时间内返回PONG表示存活,否则redis不能响应请求,可能阻塞或死亡。 [root@localhost redis]# redis-cli -p 7001 -a 123456 ping PONG 连接个数(
阅读全文
摘要:停止redis集群清除数据后重启无法自动重连问题解决方法 问题重现步骤 1、停止redis集群中的每个节点 用命令停止逐个节点太麻烦了,写了个shell脚本,shutdown.sh (-a 123456 是redis集群的连接密码) redis-cli -p 7001 -a 123456 shutd
阅读全文
摘要:Redis集群 一、集群简介 1、redis集群是一个提供在多个Redis节点间共享数据的程序集 2、redis集群并不支持处理多个keys的命令,因为这需要在不同的节点间移换数据,从而达不到向Redis那样的性能,在高负载的情况下可能会导致不可预料的错误。 3、Redis集群通过分区来提供一定程度
阅读全文
摘要:redis中没有直接根据正则表达式删除key的命令,只有del key1 key2...命令 但是redis中有通过正则表达式获取key的命令:keys "正则表达式" 可以借助于xargs命令实现批量删除key,把查出来的key值当做参数传给del redis-cli keys "mailspec
阅读全文
摘要:Redission 1、原理 2、源码中加锁lua代码 if (redis.call('exists', KEYS[1]) == 0) then redis.call('hset', KEYS[1], ARGV[2], 1); redis.call('pexpire', KEYS[1], ARGV[
阅读全文

浙公网安备 33010602011771号