1.定义
简单来说 redis 就是key-value 类型的数据库,不过与传统数据库不同的是 redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,它有5种基本数据类型:
String(字符串)Hash(哈希)List(列表)Set(集合)zset(有序集合)
2.查询流程
用户访问页面 -> 请求后端服务 -> 经过逻辑处理后,先去缓存(Redis)中进行查询,如果查到,则直接返回,如果没有查到信息,则直接向数据库进行查询,查询到之后返回给客户端时,也同时会将数据信息同步到缓存(Redis)中,以便下次查询。
3.主要作用
加快访问速度、减少服务器和db压力
4.更新方式
过期后自动更新:这是最懒的更新方式。通过设置缓存有效期,让缓存失效后通过新的请求自动创建新的缓存。
删除缓存:在更新db数据后,直接删除缓存,通过新的请求自动创建新的缓存。
重新设置缓存:在更新db数据后,直接重新设置缓存。
5.如何测试
功能测试角度:
redis数据生效时,读取是否正确,DB的数据跟Redis是否一致 ;
redis数据不存在,能否正常从db中读取到正确的值,并正确写入Redis和返回给上层
数据;
在redis和db中都不存在时的表现是否正常;
删除数据时,redis和db的数据是否一致;
性能测试角度:
缓存增加/更新功能是否正确,查看缓存数据是否正确
增加相关日志,查看日志
使用命令行,reids可以登录后,直接查看
缓存有效,验证相关业务功能
缓存被删除,验证相关业务功能
缓存过期失效,redis 可以设置失效时间,查看失效时间有没有,对不对
超量淘汰机制:缓存达到上限怎么处理
缓存穿透:不断查询一个DB和缓存中一定不存在的数据
缓存雪崩
redis缓存服务停掉
缓存超时
缓存数据被误修改后,快速恢复到指定版本
缓存数据被误删除后,快速恢复数据
1.定义
是一个开源的容器化平台,它允许开发者将应用程序及其依赖包打包到一个轻量级、可移植的容器中,
这使得应用程序可以在不同的环境中一致的运行,可以用于快速构建、部署和运行应用程序
2.docker的基本组成
镜像(image):docker将应用程序及其所依赖、函数库、环境、配置文件打包在一起,称为镜像
容器(container):镜像中的应用程序运行后所形成的进程就是容器,只是Docker会给容器做隔离,对外不可见
Docker利用容器技术,独立运行一个或者一组应用,通过镜像来创建的.启动,停止,删除,基本命令,
目前就可以把这个容器理解为就是一个简易的 Linux系统。
仓库(repository):仓库就是存放镜像的地方!仓库分为公有仓库和私有仓库。(很类似git)
3.常用的docker命令
镜像命令:
docker images #查看所有本地主机上的镜像
docker search #搜索某个镜像
docker pull #下载镜像
docker rmi #删除镜像
容器命令:
docker run 镜像id #新建容器并启动 ,运行镜像为容器
docker ps #列出所有运行的容器
docker rm 容器id #删除指定容器
docker start 容器id #启动容器
docker restart容器id #重启容器
docker stop 容器id #停止当前正在运行的容器
docker kill 容器id #强制停止当前容器
docker logs 查看日志
4.docker的生命周期
创建容器
启动容器
暂停容器
停止容器
删除容器