什么是redis
redis是用c语言开发的存储结构是key-value形式的高性能内存型数据库,可以用来做数据库,缓存,消息中间件等,
是on sql的一种数据库,
特点
运行在内存中,性能高,读写速度快,
单线程处理请求,安全,
支持多种数据类型,
支持数据持久化,就是可以保存在磁盘中,
可以设置主从复制,哨兵,
可以作分布式锁,
消息中间件,支持发布订阅,
五种数据类型
String 字符串 基本类型 value可以是数字 最大存储512M
hash 散列 是键值对的集合,
list 列表 字符串列表
set 集合 无序集合 自动去重
sorted set 有序集合 有序集合结构中添加了一个排序级,可以自定义,
应用场景
list 消息队列
set 共同好友,
sorted set 排行榜
计数器
Nosql有哪些?
Redis,MongoDB,
redis可执行文件
redis-server 启动redis
redis-cli redis客户端
redis-check-aof aof持久化检测和修复
redis-check-dump rdb持久化文件
redis-sentinel 启动redis sentinel 哨兵
redis-benchmark redis基准测试工具 就是用来检测命令是否正确
启动方式
./redis-server
./redis-server redis.conf
如何停止redis服务
kill -9 pid (粗暴)
shutdown| exit (优雅)
持久化方式
rdb 将当前进程数据生成快照保存到数据库中,速度快
aof 以日志的形式记录每次执行命令到aof文件中,数据实时
redis事务
能将多个命令放到一个事务中,按照顺序执行,的队列机制, 开始事务mulit 命令入队 执行事务exec|放弃事务discard
什么是布隆过滤器
可以检索一个元素是否在一个集合中,一帮用来判断对数据进行校验,
什么是缓冲穿透
缓存没有命中查询,数据库也没有查询到,
解决问题,缓冲空对象,布隆过滤器,
什么是缓冲击穿
当一个key在被高访问是突然缓存失效了,所有访问压力到达了底层数据库中,是缓存没有数据,数据库有数据,
解决问题: key缓存不过期 ,分布式锁,排队,
什么是雪崩
在一个时间段内,key集体失效,导致访问到数据库中,比如redis宕机,key过期
解决问题,部署多台redis服务器,数据预热,
什么是数据预热
提前将数据加载到缓存中,避免了先查库在缓存,