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的数据是否一致