![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 61
你是人间五月天
这个作者很懒,什么都没留下…
展开
-
redis数据结构
原创 2023-04-19 22:41:16 · 110 阅读 · 1 评论 -
Redis删除策略和淘汰策略
当key设置有过期时间,且过期时间到达时,由定时器任务立即执行对键的删除操作。对每个redis库逐一进行检测,每次执行耗时:250ms/server.hz。(2)如果一轮中删除的key的数量>W*25%,循环该过程。Redis启动服务器初始化时,读取配置server.hz的值,默认为10。(3)如果一轮中删除的key的数量≤W。数据到达过期时间,不做处理。(1)如果key超时,删除key。对某个库检测时,随机挑选W个key检测。2. 发现已过期,删除,返回不存在。1. 如果未过期,则返回数据。原创 2023-03-23 15:50:59 · 972 阅读 · 0 评论 -
使用redis实现分布式锁
基于Redis的分布式锁 使用命令 SETNX SETNX key val当且仅当key不存在时,set一个key为val的字符串,返回1;若key存在,则什么都不做,返回0。 Expire expire key timeout 为key设置一个超时时间,单位为second,超过这个时间锁会自动释放,避免死锁。 Delete delete key 删除key 实现思路 1.获取锁的时候,使用setnx加锁,并使用expire命令为锁添加一个超时时间,超过该时间则自动释放锁,锁的value原创 2021-10-25 16:42:33 · 793 阅读 · 0 评论 -
redis缓存预热、缓存雪崩、缓存穿透、缓存击穿及性能监控
缓存雪崩产生的原因 由于大量缓存同时失效,所有原本应该访问缓存的请求都去查询数据库了,而对数据库CPU和内存造成巨大压力 解决方案 一,用加锁或者消息中间件的方式保证来保证不会有大量的线程对数据库一次性进行读写,避免缓存失效时对数据库造成太大的压力 缺点:降低了性能 二、不同的key,设置不同的过期时间,让缓存失效的时间点尽量均匀。 三、做二级缓存,A1为原始缓存,A2为拷贝缓存,A1失效时,可以访问A2,A1缓存失效时间设置为短期,A2设置为长期(此点为补充) 缓存穿透 缓存穿透是指用户查原创 2021-10-23 16:32:58 · 72 阅读 · 0 评论 -
Redis-cluster原理
当我们的存取的key到达的时候,redis会根据crc16的算法得出一个结果,然后把结果对16384 求余数,这样每个key 都会对应一个编号在0-16383 之间的哈希槽,通过这个值,去找到对应的插槽所对应的节点,然后直接自动跳转到这个对应的节点上进行存取操作。 集群是如何判断是否有某个节点挂掉了呢? 节点之间通过互相的ping-pong判断是否可以连接上,如果有一半以上的节点去ping一个节点的时候没有回应,集群就认为这个节点宕机了。 为什么需要至少3个master节点? 因为故障检测和故...原创 2021-10-23 11:46:23 · 73 阅读 · 0 评论 -
SpringBoot操作Redis事务
public void setString(String key, Object object) { stringRedisTemplate.setEnableTransactionSupport(true); // 开启事务 stringRedisTemplate.multi(); try { // 如果是String 类型 String value = (String) object; stringRedisTemplate.opsForValue().set(key.原创 2021-10-22 21:31:00 · 182 阅读 · 0 评论 -
Redis持久化两种方式
RDB持久化 RDB 是以二进制文件,是在某个时间 点将数据写入一个临时文件 优点:使用单独子进程来进行持久化,主进程不会进行任何 IO 操作,保证了 redis 的高性能 缺点:RDB 是间隔一段时间进行持久化,如果持久化之间 redis 发生故障,会发生数据丢失。所以这种方式更适合数据要求不严谨的时候 RDB 默认开启,redis.conf 中的具体配置参数如下: #dbfilename:持久化数据存储在本地的文件 dbfilename dump.rdb #dir:持久化数据存储在本地的路径,原创 2021-10-22 17:52:31 · 78 阅读 · 0 评论 -
redis主从复制配置和哨兵机制
主从复制配置 1、过程: 1:当一个从数据库启动时,会向主数据库发送sync命令, 2:主数据库接收到sync命令后会开始在后台保存快照(执行rdb操作),并将保存期间接收到的命令缓存起来 3:当快照完成后,redis会将快照文件和所有缓存的命令发送给从数据库。 4:从数据库收到后,会载入快照文件并执行收到的缓存的命令。 修改从Redis从配置文件 修改slave redis中的 redis.conf文件 slaveof192.168.33.1306379 masterauth...原创 2021-10-22 17:45:48 · 125 阅读 · 0 评论