首页 > 数据库 >Redis

Redis

时间:2024-09-27 17:45:52浏览次数:7  
标签:缓存 删除 过期 redis db Redis 数据

1.名词解释
惰性删除:redis中设置了缓存过期时间,通过算法进行随机删除键值,如果某些键值过期后没有被删除,但是遇到查询请求,则会立即删除的这种方式叫做惰性删除(这种方式是被动式触发的,不查询就不会发生。)
缓存穿透:查询的数据不存在时,请求会直接请求数据库,不会通过redis的缓存,此现象叫做缓存穿透。
缓存击穿:当部分热点数据过期后,被redis删除,导致此时数据查询请求直接发送到数据库。
缓存雪崩:现象同缓存击穿一致,数据量大于缓存击穿。

2.连接
redis-cli -h IP -p port -a password

3.如何测试redis
缓存有几种类型:
文件缓存、内存缓存、数据库缓存、浏览器缓存
1. 浏览器缓存:指的是浏览器自身的缓存能力。
2. 数据库缓存:redis和memcached。分布式的key-value高速缓存系统。
3. 内存缓存:比数据库缓存更快,但是不能一直增加,所以限制很多,可能会导致内存泄漏等问题。(java往往实现成内存缓存为一级缓存,次高频数据作为redis为二级缓存)
4. 文件缓存:
缓存的作用:
1. 加快访问速度,减少服务器和DB压力。
2.缓存的使用场景:
3.qps较高
4.对响应速度有要求
5.服务器性能、db性能较差的

  示例:微信我的状态

缓存的更新方式:
1.过期后自动更新:通过设置缓存的有效期,缓存失效后通过新的请求自动创建新的缓存。
2.删除缓存:在更新db数据后,直接删除缓存,通过新的请求自动创建新的缓存。
3.重新设置缓存:在更新db数据时,直接重新设置缓存。

4.redis缓存测试点:
性能测试角度:
缓存更新/增加功能是否正确,查看缓存数据是否正常
1. 增加相关日志,查看日志
2. 后门接口工具
3. 使用命令行,或者登录到redis/memcached直接查看
缓存删除
1. 缓存有效,验证相关业务功能
2. 缓存被删除,验证相关业务功能
3. 缓存过期失效,设置失效时间,查看是否存在失效时间且时间正确与否
超量淘汰机制:缓存达到上限怎么处理
缓存穿透
缓存雪崩
redis缓存服务器宕机
缓存超时
缓存数据被误修改后,快速恢复到指定版本
缓存数据被删除后,快速恢复数据

功能测试角度:
1. redis数据生效时,读取是否正确
2. redis数据不存在时,能否正常从db中读取到正确的值,并正确写入Redis和返回给上层
3. 数据在redis和db都不存在时的表现是否正常
4. 删除数据时,redis和db的数据是否一致

标签:缓存,删除,过期,redis,db,Redis,数据
From: https://www.cnblogs.com/helStrive/p/18436259

相关文章

  • redis集群增加减少节点
    redis集群故障切换方案步骤:1、增加临时节点并加入集群2、将故障节点槽位移动到新节点3、剔除故障节点4、备份故障节点配置下架更换5、更换后按照1-3步骤将临时节点剔除,将原故障节点重新加入集群#测试环境为3主3从,有5个keyredis-cli-c-p8102-h172.17.0.89-a123456d......
  • Redis常见面试题
    过期删除策略删除达到过期时间的key。1)定时删除对于每一个设置了过期时间的key都会创建一个定时器,一旦到达过期时间就立即删除。该策略可以立即清除过期的数据,对内存较友好,但是缺点是占用了大量的CPU资源去处理过期的数据,会影响Redis的吞吐量和响应时间。2)惰性删除当......
  • redis有序集合多字段排序
    首先,redis有序集合本身是不支持多字段排序的例如ZADDusers25AliceZADDusers25BobZADDusers10Carol只能通过前面的分数这一个维度来实现,如果现在引入了另一个字段,可以在分数值(利用阿拉伯数字)上做手脚例如,时间维度2023-01-012023-01-022023-01-03这......
  • 使用 Redis 记录用户连续登录天数的方法及代码分享
    目录标题:使用Redis记录用户连续登录天数的方法及代码分享一、为什么不适合放在数据库中二、Redis的bitmap介绍三、存储方式及统计方法(一)以每天维度存储(二)以用户维度存储在本文中,我们将探讨如何使用Redis记录用户连续登录天数的问题。这是一个在面试中可能会遇到......
  • Redis缓存过期淘汰策略
    先来看下我们遇到的问题生产上redis内存需要设置多少才合适如何配置、修改redis的内存大小,具体怎么操作如果内存满了Redis怎么办redis清理内存的方式选择那种:定期删除和惰性删怎么选择redis缓存淘汰策略1.redis内存1.1查看Redis内存配置文件查看Redis最大占用内......
  • redis自身查询很慢 排查redis-benchmark
    redis-benchmark 是一个用于测试Redis性能的基准测试工具,可以帮助开发人员评估和比较Redis在不同配置或负载情况下的吞吐量和延迟。通过 redis-benchmark 的测试结果,你可以获得qps、平均延迟、错误率等性能指标,从而根据需要进行调优和优化,确保Redis在实际生产环境中具有良......
  • Docker容器启动Redis设置密码并持久化
    启动命令dockerrun--namewh-redis-p6379:6379-v/root/RedisData:/data-d--restartunless-stoppedredis--appendonlyyes--requirepass'Your-password'dockerrun:启动一个新的Docker容器。--namewh-redis:给容器指定一个名称,容器名为wh-redis。指定名......
  • 2 Redis实现分布式锁
    用Redis实现分布式锁的原理主要基于Redis提供的原子操作命令(如SETNX、EXPIRE等)和一些高级特性(如Lua脚本、RedLock算法等),来确保在分布式环境中对共享资源的互斥访问。以下是用Redis实现分布式锁的具体原理:一、分布式锁的基本步骤分布式锁的基本原理可以分为以下几个步骤:请求锁......
  • VB.net(C#同理)使用 ServiceStack.Redis 二进制存储、读取图像
    搜索了一下,网上似乎没有相关的内容,于是把自己探索的经验写一下。'安装提示:首先需要把当前的目标框架设置为.NetFramwork4.5。'方法一:复制ebay订单里的DLL\ServiceStack.Redis(整个文件夹),自行添加引用(4个dll)'方法二:使用Nuget安装servicestack.redis,选择5.0版本PublicClas......
  • Redis 事务
    概述Redis支持分布式环境下的事务操作,其事务可以一次执行多个命令,事务中的所有命令都会序列化地顺序执行。事务在执行过程中不会被其他客户端发送来的命令请求打断,服务器在执行完事务中的所有命令之后,才会继续处理其他客户端的其他命令。Redis的事务操作分为开启事务、命令入队......