redis持久化的意义redis的数据存储在内存中,如果没有持久化的话,redis遇到灾难性故障的时候,就会丢失所有的数据,即使重启redis,没有数据恢复的情况下,就有可能发生缓存雪崩的问题,从而导致系统数据库压力过大,甚至宕机,导致服务不可用。 如果通过持久化一份儿数据放在磁盘上,然后定期比如说同步和备份到一些云存储服务上去,那么就可以保证数据不丢失全部,还是可以恢复一部分数据回来的redis            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2024-06-20 04:13:03
                            
                                22阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            参考文章:http://doc.redisfans.com/topic/cluster-spec.html集群节点的超时时限redis.conf配置默认值是: cluster-node-timeout 15000 一、节点失效检测1.集群中当一个节点向另一个节点发送PING命令,但是目标节点未在给定的时限内返回PING命令的回复时,那么发送命令的节点会将目标节点标记为PFAIL            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-15 06:56:16
                            
                                432阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            突然收到告警,提示redis挂了,同时大群也在说某某redis连接超时了,过了一会儿就恢复了。这时登上服务器,查看监控。首先看看qps:可以看到qps并不高,但是中间有段时间没取到数据是怎么回事?那么继续看看redis的cpu使用率:可以看到cpu已经饱和,这也就能解释为何断图了,因为redis是单线程,在使用cpu 100%以后,就无法处理其他的命令了,zabbix也就无法执行info命令取qp            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-24 23:34:34
                            
                                38阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、redis 需要掌握的知识点   架构:单线程数据类型及其适用场景:5种命令的熟悉度(http://doc.redisfans.com/index.html)慢查询分析pipeline 的使用redis 与 lua 脚本的使用redis 持久化:rdb && aof 区别及各自特点redis 复制redis 内存怎么管理:内存使用统计,内存回收策略,内存优化等redis            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-15 20:04:03
                            
                                121阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、Redis的单线程和高性能Redis 单线程为什么还能这么快?因为它所有的数据都在内存中,所有的运算都是内存级别的运算(纳秒),而且单线程避免了多线程的切换(上下文切换)性能损耗问题。正因为 Redis 是单线程,所以要小心使用 Redis 指令,对于那些耗时的指令(比如keys),一定要谨慎使用,一不小心就可能会导致 Redis 卡顿。Redis 单线程如何处理那么多的并发客户端连接?Red            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-26 16:33:40
                            
                                264阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            Redis有内存回收机制.当一个key超时后,会被做标记.但不会立即自动回收.这样做的好处是,当一个key的值是一个存有百万元素的list时候,如果超时后立即回收.需要很长时间,造成卡顿. Redis提供定时回收和惰性回收两种机制定时回收:确定某个时间触发一段代码,回收超时的键值对.惰性回收:当一个key超时后,在执行下一次get操作的时候回收 定时回收可以完全回收超时的键值对            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 10:54:07
                            
                                186阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            redis.clients.jedis.exceptions.JedisConnectionException: java.net.SocketTimeoutException: connect timed out 解决办法1:关闭防火墙因为指令不同,所以看看哪种可用1. service sshd status   查看sshd的状态
servic            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-07 11:03:59
                            
                                171阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            设置key的过期时间,超过时间后,将会自动删除该key。在Redis的术语中一个key的相关超时是不确定的。超时后只有对key执行DEL命令或者SET命令或者GETSET时才会清除。 这意味着,从概念上讲所有改变key的值的操作都会使他清除。 例如,INCR递增key的值,执行LPUSH操作,或者用HSET改变hash的field所有这些操作都会触发删除动作。使用PERSIST命令可以清            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-26 17:44:28
                            
                                394阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            一、Redis超时问题排查 
 客户端设置了超时时间为200ms, 应用端反馈超时情况,并提供的超时日志。 
 逐个排查: 
 1. Redis慢查询:并没有发现慢查询 
 2. Redis日志:没有什么异常,也没什么RDB和AOF重写 
 3. 机器:观察cpu,内存,网络,负载,本地IO都正常 
 4. 唯一以前怀疑的是网络,按理说这个流量也不是很大,            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-08-29 21:16:47
                            
                                491阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            redis 简单配置            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 10:54:33
                            
                                312阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            一、可能最大连接数/超时时间设置过小如图,检查最大连接数和超时时间,将其调大。redis:
    lettuce:
      pool:
        MaxTotal: 50 #最大连接数
        minIdle: 1
        maxWaitMillis: 5000
        maxIdle: 5
        testOnBorrow: true            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-14 10:52:33
                            
                                1410阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets) 等。redis分布式的常规实现Redis是最常见的实现分布式锁的方法之一,而很多人都了解使用了redis分布式锁使用redis的SET k            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-12-25 13:35:03
                            
                                156阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            简介set命令用于将key-value设置到数据库。如果key已经设置,则set会用新值覆盖旧值,不管原value是何种类型,如果在设置时不指定EX或PX参数,set命令会清除原有超时时间。格式:  SET key value [NX] [XX] [EX <seconds>] [PX <milliseconds>]  参数:NX: 当数据库中key不存在时,可以将key-v            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-07-28 14:38:15
                            
                                2389阅读
                            
                                                                             
                 
                
                                
                     
                                    
                             
         
            
            
            
            redis的超时处理
1) 当再次访问该数据时, 发现该数据已超时过期, 则删掉; 返回给调用者为空。(被动发现)
2) redis server起来之后, 会注册定时器事件(每毫秒触发1次超时), 在该定时器处理函数中, 轮流各db;大致策略是从该db.expired dict中:
-----a. 尝试取20(ACTIVE_EXPIRE_CYCLE_LOOKUPS_PER_LOOP)次随机key            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-29 11:12:30
                            
                                285阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            1、设置超时时间[最重要]目前有许多key没有设置超时时间,导致一直占用内存。需要增加操作步骤,设置超时时间。时间尽量短。某些业务要求key长期有效。可以在每次写入时,都设置超时时间,让超时时间顺延。短的超时时间,如 5分钟,10分钟,30分钟,1小时,3小时,1天等长的超时时间,如 7天,15天,1个月,3个月,6个月等示例代码如下:// 设置有效期
			jedis.expire(ca            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-05-25 14:18:29
                            
                                1259阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            redis初始化func RedisInit() *redis.Client {
	var rdb = redis.NewClient(&redis.Options{Addr: "x.x.x.x:6379", Password: "xxxxxx", DB: 6,
		//连接池容量及闲置连接数量
		//go-redis包自带了连接池,会自动维护redis连接,因此创建一次client即可            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-09-18 22:30:04
                            
                                455阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 如何实现Redis NX和PX
## 介绍
在Redis中,NX和PX是两个常用的命令选项,用于在执行命令时指定一些特定的行为。NX表示只在键不存在时才设置值,而PX表示设置键的过期时间。在本文中,我将向你介绍如何使用Redis的NX和PX选项,以及实现这两个功能的步骤和示例代码。
## 实现流程
首先,让我们来看一下实现“redis nx和px”的整个流程。下面是一个简单的流程表格:            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-28 06:37:19
                            
                                272阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # 实现“redis PX EX NX”的步骤
## 概述
在实现"redis PX EX NX"之前,我们首先需要了解redis和这个命令的含义。Redis是一个开源的内存数据结构存储系统,被广泛应用于缓存、消息队列、排行榜等场景。"redis PX EX NX"是redis中的一个命令,用于设置带有过期时间的键值对,并且只在键不存在时才进行设置。
为了帮助你理解实现"redis PX EX            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2023-12-26 07:33:37
                            
                                186阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            # Redis中的EX、PX、NX命令详解
在使用Redis的过程中,我们经常会遇到一些命令,其中EX、PX、NX就是其中几个常见的命令选项。这些选项可以用于对Redis中的键进行设置和操作。本文将介绍这些选项的具体含义和用法,并给出相应的代码示例,以帮助读者更好地理解和运用这些命令。
## EX、PX、NX的含义
- **EX**: EX是expire的缩写,用于设置键的过期时间,单位为秒            
                
                    
                        
                                                            
                                                                        
                                                                                        原创
                                                                                    
                            2024-04-18 04:17:07
                            
                                1251阅读
                            
                                                                             
                 
                
                             
         
            
            
            
            之前负责的一个服务总是在高峰时刻和压测发生大量的redis连接超时的异常redis.clients.jedis.exceptions.JedisConnectionException,根据原有的业务规则,首先会从数据库查询,然后缓存到redis中,超时时间设置为3分钟。并且由于业务的特性,本身未做降级、限流等处理措施,而在巅峰的QPS基本上快达到20000的样子,虽然这个现象只是单纯的一个异常,并            
                
                    
                        
                                                            
                                                                        
                                                                                        转载
                                                                                    
                            2023-06-21 22:36:29
                            
                                535阅读
                            
                                                                             
                 
                
                                
                    